具体描述
作为一种便捷地收集网上信息并从中抽取出可用信息的方式,网络爬虫技术变得越来越有用。使用Python这样的简单编程语言,你可以使用少量编程技能就可以爬取复杂的网站。
《用Python写网络爬虫》作为使用Python来爬取网络数据的杰出指南,讲解了从静态页面爬取数据的方法以及使用缓存来管理服务器负载的方法。此外,本书还介绍了如何使用AJAX URL和Firebug扩展来爬取数据,以及有关爬取技术的更多真相,比如使用浏览器渲染、管理cookie、通过提交表单从受验证码保护的复杂网站中抽取数据等。本书使用Scrapy创建了一个高级网络爬虫,并对一些真实的网站进行了爬取。
《用Python写网络爬虫》介绍了如下内容:
通过跟踪链接来爬取网站;
使用lxml从页面中抽取数据;
构建线程爬虫来并行爬取页面;
将下载的内容进行缓存,以降低带宽消耗;
解析依赖于JavaScript的网站;
与表单和会话进行交互;
解决受保护页面的验证码问题;
对AJAX调用进行逆向工程;
使用Scrapy创建高级爬虫。
本书读者对象
本书是为想要构建可靠的数据爬取解决方案的开发人员写作的,本书假定读者具有一定的Python编程经验。当然,具备其他编程语言开发经验的读者也可以阅读本书,并理解书中涉及的概念和原理。
作者简介
Richard Lawson来自澳大利亚,毕业于墨尔本大学计算机科学专业。毕业后,他创办了一家专注于网络爬虫的公司,为超过50个国家的业务提供远程工作。他精通于世界语,可以使用汉语和韩语对话,并且积极投身于开源软件。他目前在牛津大学攻读研究生学位,并利用业余时间研发自主无人机。
目录信息
第1章 网络爬虫简介 1
1.1 网络爬虫何时有用 1
1.2 网络爬虫是否合法 2
1.3 背景调研 3
1.3.1 检查robots.txt 3
1.3.2 检查网站地图 4
1.3.3 估算网站大小 5
1.3.4 识别网站所用技术 7
1.3.5 寻找网站所有者 7
1.4 编写第一个网络爬虫 8
1.4.1 下载网页 9
1.4.2 网站地图爬虫 12
1.4.3 ID遍历爬虫 13
1.4.4 链接爬虫 15
1.5 本章小结 22
第2章 数据抓取 23
2.1 分析网页 23
2.2 三种网页抓取方法 26
2.2.1 正则表达式 26
2.2.2 Beautiful Soup 28
2.2.3 Lxml 30
2.2.4 性能对比 32
2.2.5 结论 35
2.2.6 为链接爬虫添加抓取回调 35
2.3 本章小结 38
第3章 下载缓存 39
3.1 为链接爬虫添加缓存支持 39
3.2 磁盘缓存 42
3.2.1 实现 44
3.2.2 缓存测试 46
3.2.3 节省磁盘空间 46
3.2.4 清理过期数据 47
3.2.5 缺点 48
3.3 数据库缓存 49
3.3.1 NoSQL是什么 50
3.3.2 安装MongoDB 50
3.3.3 MongoDB概述 50
3.3.4 MongoDB缓存实现 52
3.3.5 压缩 54
3.3.6 缓存测试 54
3.4 本章小结 55
第4章 并发下载 57
4.1 100万个网页 57
4.2 串行爬虫 60
4.3 多线程爬虫 60
4.3.1 线程和进程如何工作 61
4.3.2 实现 61
4.3.3 多进程爬虫 63
4.4 性能 67
4.5 本章小结 68
第5章 动态内容 69
5.1 动态网页示例 69
5.2 对动态网页进行逆向工程 72
5.3 渲染动态网页 77
5.3.1 PyQt还是PySide 78
5.3.2 执行JavaScript 78
5.3.3 使用WebKit与网站交互 80
5.3.4 Selenium 85
5.4 本章小结 88
第6章 表单交互 89
6.1 登录表单 90
6.2 支持内容更新的登录脚本扩展 97
6.3 使用Mechanize模块实现自动化表单处理 100
6.4 本章小结 102
第7章 验证码处理 103
7.1 注册账号 103
7.2 光学字符识别 106
7.3 处理复杂验证码 111
7.3.1 使用验证码处理服务 112
7.3.2 9kw入门 112
7.3.3 与注册功能集成 119
7.4 本章小结 120
第8章 Scrapy 121
8.1 安装 121
8.2 启动项目 122
8.2.1 定义模型 123
8.2.2 创建爬虫 124
8.2.3 使用shell命令抓取 128
8.2.4 检查结果 129
8.2.5 中断与恢复爬虫 132
8.3 使用Portia编写可视化爬虫 133
8.3.1 安装 133
8.3.2 标注 136
8.3.3 优化爬虫 138
8.3.4 检查结果 140
8.4 使用Scrapely实现自动化抓取 141
8.5 本章小结 142
第9章 总结 143
9.1 Google搜索引擎 143
9.2 Facebook 148
9.2.1 网站 148
9.2.2 API 150
9.3 Gap 151
9.4 宝马 153
9.5 本章小结 157
· · · · · · (收起)
读后感
第二段为2018年5月31日补充 本书不适合绝对入门者,适合已经熟悉python且熟悉大多数模块的人。作者对爬虫的编写考虑较为全面,且有相关练习网页可以实操。但是相关模块方法解释基本没有,整本书就是让你对爬虫认识有一个“有这么回事” 的概念而不是 “就那么回事”。我刚入门...
第二段为2018年5月31日补充 本书不适合绝对入门者,适合已经熟悉python且熟悉大多数模块的人。作者对爬虫的编写考虑较为全面,且有相关练习网页可以实操。但是相关模块方法解释基本没有,整本书就是让你对爬虫认识有一个“有这么回事” 的概念而不是 “就那么回事”。我刚入门...
第二段为2018年5月31日补充 本书不适合绝对入门者,适合已经熟悉python且熟悉大多数模块的人。作者对爬虫的编写考虑较为全面,且有相关练习网页可以实操。但是相关模块方法解释基本没有,整本书就是让你对爬虫认识有一个“有这么回事” 的概念而不是 “就那么回事”。我刚入门...
第二段为2018年5月31日补充 本书不适合绝对入门者,适合已经熟悉python且熟悉大多数模块的人。作者对爬虫的编写考虑较为全面,且有相关练习网页可以实操。但是相关模块方法解释基本没有,整本书就是让你对爬虫认识有一个“有这么回事” 的概念而不是 “就那么回事”。我刚入门...
第二段为2018年5月31日补充 本书不适合绝对入门者,适合已经熟悉python且熟悉大多数模块的人。作者对爬虫的编写考虑较为全面,且有相关练习网页可以实操。但是相关模块方法解释基本没有,整本书就是让你对爬虫认识有一个“有这么回事” 的概念而不是 “就那么回事”。我刚入门...
用户评价
作为一名资深的Python开发者,我一直对网络爬虫领域保持着高度关注,而《用Python写网络爬虫》这本书,无疑是近期我读过的最令人惊喜的著作之一。作者在内容编排上极为巧妙,先是以简练的语言勾勒出爬虫的基本原理与技术栈,随后便以渐进式的方式,深入探讨了各种高级爬虫技术的实现细节。我尤其欣赏书中对于动态网页抓取和Ajax请求处理的详尽阐述,这部分内容往往是许多初学者望而却步的难点,但本书通过清晰的代码逻辑和精妙的讲解,将这些复杂的概念化繁为简,让我茅塞顿开。此外,书中对Scrapy框架的讲解更是达到了炉火纯青的地步,从项目搭建到管道设计,再到中间件的应用,每一个细节都抠得非常到位,并且提供了大量的实战案例,足以应对各种复杂的抓取场景。这本书不仅是一本技术手册,更像是一本经验的传承,让我能够站在巨人的肩膀上,快速提升自己的爬虫技能。对于希望在数据采集、信息分析等领域有所建树的开发者而言,这本书绝对是不可或缺的宝藏。
我一直认为,一本好的技术书籍,不仅要传授知识,更要传递思想。《用Python写网络爬虫》这本书,恰恰做到了这一点。除了扎实的技术讲解,作者在书中融入了许多关于数据采集的伦理和法律边界的讨论,这让我受益匪浅。在信息爆炸的时代,数据无处不在,如何合理、合法地获取和利用数据,是每一个从业者都应该思考的问题。书中关于robots.txt协议的解读、网站使用条款的提示,以及对数据隐私的关注,都让我深刻意识到,技术的力量需要被审慎地使用。同时,作者也鼓励读者去思考爬虫技术的应用前景,以及如何利用爬虫解决实际问题,这激发了我更多的创新思维。这本书不仅仅是一本教我如何“爬”的书,更是一本让我学会如何“智取”和“负责任地取”的书。它让我对网络爬虫有了更深层次的理解,也让我对未来的发展充满了期待。
这本《用Python写网络爬虫》在技术深度和广度上都做得相当出色。它并没有停留在基础的Requests和BeautifulSoup层面,而是将目光投向了更复杂的场景。我对书中关于分布式爬虫和异步IO的章节印象尤为深刻。作者通过生动的比喻和清晰的逻辑,将原本抽象的技术概念阐释得淋漓尽致,例如如何利用多线程、多进程或者异步IO来提高爬虫的效率,以及如何构建一个能够处理海量数据的分布式爬虫系统。书中还详细介绍了如何利用Celery、Redis等工具来实现任务的调度和管理,这对于构建大型、稳定的爬虫平台至关重要。此外,作者对数据清洗和存储的建议也十分实用,不仅仅是抓取数据,更重要的是如何将这些数据转化为有价值的信息。这本书不仅适合初学者入门,对于有一定爬虫基础的开发者来说,也能够从中获得很多宝贵的启发和提升。
说实话,我本来以为这本书会是一本枯燥乏味的纯技术手册,结果完全出乎我的意料!《用Python写网络爬虫》这本书,读起来竟然充满了趣味性,让我爱不释手。作者的文笔非常幽默风趣,时不时穿插一些有趣的段落,让我在学习技术的同时,也能感受到轻松愉悦的氛围。比如,在讲解如何绕过IP限制时,作者用了一个非常形象的比喻,让我瞬间就明白了其中的原理。而且,书中的例子都非常贴近生活,比如抓取豆瓣读书的评分、B站的热门视频,这些都是我们平时经常接触到的东西,让我觉得爬虫技术离我并不遥远。最让我感动的是,作者在书中分享了自己的一些爬虫“踩坑”经历,让我们知道原来即使是经验丰富的开发者,也会遇到各种各样的问题,这让我觉得非常真实,也更有信心去克服困难。这本书让我觉得,学习爬虫不再是一件枯燥乏味的任务,而是一场充满惊喜的探索之旅。
这本《用Python写网络爬虫》简直就是我踏入爬虫世界的敲门砖!之前我对爬虫一直是一知半解,总觉得它神秘又复杂,但这本书用非常生动易懂的方式,一步步地把我领进了门。从最基础的HTTP请求原理,到BeautifulSoup、Requests库的安装和使用,再到Scrapy框架的深入讲解,每一个环节都清晰明了。作者的讲解风格非常接地气,很少有枯燥的代码堆砌,更多的是通过一个个生动形象的例子,比如抓取新闻网站、电商商品信息、甚至是一些社交媒体的数据,让我亲眼见证爬虫的强大威力。我特别喜欢书中对反爬机制的讲解,以前总被各种验证码、IP封锁搞得焦头烂额,看完这本书,才知道原来可以有这么多的方法去应对,而且作者还提供了很多实用的技巧和代码示例,让我受益匪浅。更重要的是,这本书不仅仅是教你如何“爬”,还强调了爬虫的伦理和法律规范,让我明白作为一名合格的爬虫工程师,应该承担的责任。这本书让我从一个门外汉,逐渐成长为一个能够独立编写爬虫脚本的爱好者,强烈推荐给所有想学习爬虫的朋友!
2.7的代码,唉:-(
够实用
还可以,讲得比较基础
从知乎董伟明的live里来的,内容还不错,也还蛮新的一本书,再读读。进阶之路走得有点慢。
2.7