具体描述
本书采用简洁强大的Python语言,介绍了网络数据采集,并为采集新式网络中的各种数据类型提供了全面的指导。第一部分重点介绍网络数据采集的基本原理:如何用Python从网络服务器请求信息,如何对服务器的响应进行基本处理,以及如何以自动化手段与网站进行交互。第二部分介绍如何用网络爬虫测试网站,自动化处理,以及如何通过更多的方式接入网络。
作者简介
Ryan Mitchell
数据科学家、软件工程师,目前在波士顿LinkeDrive公司负责开发公司的API和数据分析工具。此前,曾在Abine公司构建网络爬虫和网络机器人。她经常做网络数据采集项目的咨询工作,主要面向金融和零售业。另著有Instant Web Scraping with Java。
目录信息
前言 xi
第一部分 创建爬虫
第1章 初见网络爬虫 2
1.1 网络连接 2
1.2 BeautifulSoup简介 4
1.2.1 安装BeautifulSoup 5
1.2.2 运行BeautifulSoup 7
1.2.3 可靠的网络连接 8
第2章 复杂HTML解析 11
2.1 不是一直都要用锤子 11
2.2 再端一碗BeautifulSoup 12
2.2.1 BeautifulSoup的find()和findAll() 13
2.2.2 其他BeautifulSoup对象 15
2.2.3 导航树 16
2.3 正则表达式 19
2.4 正则表达式和BeautifulSoup 23
2.5 获取属性 24
2.6 Lambda表达式 24
2.7 超越BeautifulSoup 25
第3章 开始采集 26
3.1 遍历单个域名 26
3.2 采集整个网站 30
3.3 通过互联网采集 34
3.4 用Scrapy采集 38
第4章 使用API 42
4.1 API概述 43
4.2 API通用规则 43
4.2.1 方法 44
4.2.2 验证 44
4.3 服务器响应 45
4.4 Echo Nest 46
4.5 Twitter API 48
4.5.1 开始 48
4.5.2 几个示例 50
4.6 Google API 52
4.6.1 开始 52
4.6.2 几个示例 53
4.7 解析JSON数据 55
4.8 回到主题 56
4.9 再说一点API 60
第5章 存储数据 61
5.1 媒体文件 61
5.2 把数据存储到CSV 64
5.3 MySQL 65
5.3.1 安装MySQL 66
5.3.2 基本命令 68
5.3.3 与Python整合 71
5.3.4 数据库技术与最佳实践 74
5.3.5 MySQL里的“六度空间游戏” 75
5.4 Email 77
第6章 读取文档 80
6.1 文档编码 80
6.2 纯文本 81
6.3 CSV 85
6.4 PDF 87
6.5 微软Word和.docx 88
第二部分 高级数据采集
第7章 数据清洗 94
7.1 编写代码清洗数据 94
7.2 数据存储后再清洗 98
第8章 自然语言处理 103
8.1 概括数据 104
8.2 马尔可夫模型 106
8.3 自然语言工具包 112
8.3.1 安装与设置 112
8.3.2 用NLTK做统计分析 113
8.3.3 用NLTK做词性分析 115
8.4 其他资源 119
第9章 穿越网页表单与登录窗口进行采集 120
9.1 Python Requests库 120
9.2 提交一个基本表单 121
9.3 单选按钮、复选框和其他输入 123
9.4 提交文件和图像 124
9.5 处理登录和cookie 125
9.6 其他表单问题 127
第10章 采集JavaScript 128
10.1 JavaScript简介 128
10.2 Ajax和动态HTML 131
10.3 处理重定向 137
第11章 图像识别与文字处理 139
11.1 OCR库概述 140
11.1.1 Pillow 140
11.1.2 Tesseract 140
11.1.3 NumPy 141
11.2 处理格式规范的文字 142
11.3 读取验证码与训练Tesseract 146
11.4 获取验证码提交答案 151
第12章 避开采集陷阱 154
12.1 道德规范 154
12.2 让网络机器人看起来像人类用户 155
12.2.1 修改请求头 155
12.2.2 处理cookie 157
12.2.3 时间就是一切 159
12.3 常见表单安全措施 159
12.3.1 隐含输入字段值 159
12.3.2 避免蜜罐 160
12.4 问题检查表 162
第13章 用爬虫测试网站 164
13.1 测试简介 164
13.2 Python单元测试 165
13.3 Selenium单元测试 168
13.4 Python单元测试与Selenium单元测试的选择 172
第14章 远程采集 174
14.1 为什么要用远程服务器 174
14.1.1 避免IP地址被封杀 174
14.1.2 移植性与扩展性 175
14.2 Tor代理服务器 176
14.3 远程主机 177
14.3.1 从网站主机运行 178
14.3.2 从云主机运行 178
14.4 其他资源 179
14.5 勇往直前 180
附录A Python简介 181
附录B 互联网简介 184
附录C 网络数据采集的法律与道德约束 188
作者简介 200
封面介绍 200
· · · · · · (收起)
读后感
诚然,这本书里面提到的一些python库不一定是最好的,但是整个爬虫的思路,还是非常值得大家借鉴。 其实python的语法,以及爬虫的代码段,都不难,就是写爬虫的过程中,需要注意的事项和有可能踩到的坑,是我比较看中的。 书中提到了一点,就是修改浏览器的header,默认貌似...
第177页的代码从逻辑上就不对啊,import的pytesseract就没用,而是通过subprocess调用,这应该是第一版的思路,不过我也搞不清这是作者还是译者的锅,把代码改成如下更合理 import time from urllib.request import urlretrieve from PIL import Image import pytesseract from...
我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看...
5.3.2 基本命令 第二段第一句话: 除了用户自定义变量名(MySQL 5.x 版本是不区分大小写的,MySQL 5.0 之前的版本是不区分大小写的),MySQL 语句是不区分大小写的。(wtf ??????? 5.4 Email 查询圣诞节的代码缩进错误(sendMail函数和while都错了,会造成死循环! 8.2...
第177页的代码从逻辑上就不对啊,import的pytesseract就没用,而是通过subprocess调用,这应该是第一版的思路,不过我也搞不清这是作者还是译者的锅,把代码改成如下更合理 import time from urllib.request import urlretrieve from PIL import Image import pytesseract from...
用户评价
从学习体验的角度来说,这本书的设计哲学非常注重读者的自我提升和知识体系的构建。它没有仅仅停留在教你“怎么做”(How to),更侧重于解释“为什么这样做”(Why)。比如,在介绍Scrapy中间件的原理时,作者会花大量的篇幅去解释其在整个请求生命周期中的确切位置和作用机制,而不是直接抛出代码让你复制粘贴。这种对底层逻辑的深挖,让我不仅仅学会了使用某个工具,更重要的是理解了工具背后的设计思想。这种授人以渔的教学方式,培养了我独立分析和解决新问题的能力。读完后,我感觉自己对数据采集这个领域的理解层次得到了质的飞跃,不再是被动地模仿,而是能够主动地设计和优化采集方案。这本书更像是一套武功秘籍,教你如何修炼内功。
这本书的装帧设计简直是太吸引人了!封面采用了深邃的藏蓝色调,搭配着醒目的橙色字体,那种科技感和专业感扑面而来,让人忍不住想立刻翻开它。内页的纸张质量也很不错,触感细腻,印刷清晰,阅读起来眼睛一点也不累。特别是排版上,作者很注重细节,章节标题的字号和间距都处理得恰到好处,让复杂的知识点也能在视觉上得到很好的梳理。随便翻阅几页,就能感受到编辑团队在图书制作上的用心。它不仅仅是一本技术书籍,更像是一件精心制作的艺术品,摆在书架上都是一种享受。我特别喜欢它在图示和代码块的处理上所下的功夫,很多概念性的东西,通过精心绘制的流程图和结构图展示出来,瞬间就变得直观易懂。这本书的实体书质感,绝对是那种值得收藏的类型,而不是看完就束之高阁的快消品。那种油墨的清香和纸张的质感,是电子书永远无法替代的体验。
我拿到这本书后,最先关注的就是它内容的深度和广度,这绝对超出了我的预期。我原以为它会集中在某个非常狭窄的爬虫框架上做文章,但实际上,作者构建了一个非常宏大且实用的知识体系。从基础的网络协议解析,到反爬虫策略的应对,再到数据清洗和存储的实践,每一个环节的讲解都深入骨髓。尤其是关于异步编程和分布式采集的部分,简直是干货满满,作者没有停留在理论的表面,而是给出了大量生产环境中可以复用的代码模板和优化思路。读完相关的章节,我立刻感觉自己对整个数据采集的生命周期有了全新的认识,不再是零散知识点的堆砌,而是一个完整的工程化流程。这本书的逻辑组织非常有条理,章节间的衔接丝滑自然,体现了作者扎实的行业经验和高超的知识传授能力。
这本书在实战案例的选取上眼光独到,完全跳脱了那些已经被用烂了的简单网站作为示例。我发现作者选择的都是当下互联网上那些结构复杂、反爬机制严密、并且具有实际商业价值的数据源进行深入剖析。每一个案例都像是一个小型项目,从需求分析、工具选型到最终数据落地,都有详细的步骤分解和源码讲解。我跟着书中的案例动手实践了一遍,发现它提供的解决方案不仅有效,而且非常具有前瞻性,很多技巧都是我之前在网上搜索资料时都没有找到的“秘籍”。特别是关于绕过JavaScript渲染和处理动态加载数据的章节,直接解决了困扰我很久的一个技术难题。这本书的价值,很大一部分就体现在这些高逼格、高难度的实战演练上了。
这本书的叙述风格我个人非常欣赏,它不是那种高高在上的教科书腔调,读起来更像是经验丰富的前辈在手把手地指导你。作者的语言非常风趣幽默,即便是讲解那些枯燥乏味的底层原理时,也能穿插一些生动的比喻和实际的案例,让人在轻松愉快的氛围中吸收知识。比如在讲解HTTP请求头伪装时,作者用了一个“扮演不同身份的网络信使”的比喻,瞬间就把复杂的概念具象化了。这种平易近人的叙述方式,极大地降低了学习曲线,让我这个中级水平的开发者也能毫无压力地深入到高级主题中。它真的做到了“深入浅出”,保证了技术深度,又不失阅读的乐趣,这一点在技术图书中是相当难得的。
爬虫入门推荐,内容不难,面面俱到,唯一遗憾的是没讲如何多线程和分布式爬取,篇幅有限可以理解。作者还分享了一些踩坑的细节,甚至跟爬虫看似没有直接关系的知识点也介绍了一下。代码不是很Pythonic,看起来作者应该主要是写Java的,不过代码质量可以,Python 3也好评。
Web Scraping with Python: Collecting Data from the Modern Web | Ryan Mitchell | download http://b-ok.org/book/2575517/98b82a
适合入门,感觉是各种爬虫库文档的精简版
其实不应当标注出这类书籍的,但看在这本书确实写的比较实在有价值,还是推荐。
终于有本针对3.X的爬虫书了~