具体描述
本书采用简洁强大的Python语言,全面介绍网页抓取技术,解答诸多常见问题,是掌握从数据爬取到数据清洗全流程的系统实践指南。书中内容分为两部分。第一部分深入讲解网页抓取的基础知识,重点介绍BeautifulSoup、Scrapy等Python库的应用。第二部分介绍网络爬虫编写相关的主题,以及各种数据抓取工具和应用程序,帮你深入互联网的每个角落,分析原始数据,获取数据背后的故事,轻松解决遇到的各类网页抓取问题。第2版全面更新,新增网络爬虫模型、Scrapy和并行网页抓取相关章节。
- 解析复杂的HTML页面
- 使用Scrapy框架开发爬虫
- 学习存储数据的方法
- 从文档中读取和提取数据
- 清洗格式糟糕的数据
- 自然语言处理
- 通过表单和登录窗口抓取数据
- 抓取JavaScript及利用API抓取数据
- 图像识别与文字处理
- 避免抓取陷阱和反爬虫策略
- 使用爬虫测试网站
作者简介
瑞安·米切尔(Ryan Mitchell)
数据科学家、软件工程师,有丰富的网络爬虫和数据分析实战经验,目前就职于美国格理集团,经常为网页数据采集项目提供咨询服务,并在美国东北大学和美国欧林工程学院任教。
目录信息
第一部分 创建爬虫
第1章 初见网络爬虫 3
1.1 网络连接 3
1.2 BeautifulSoup 简介 5
1.2.1 安装BeautifulSoup 6
1.2.2 运行BeautifulSoup 8
1.2.3 可靠的网络连接以及异常的处理 9
第2章 复杂HTML 解析 13
2.1 不是一直都要用锤子 13
2.2 再端一碗BeautifulSoup 14
2.2.1 BeautifulSoup 的find() 和find_all() 16
2.2.2 其他BeautifulSoup 对象 18
2.2.3 导航树 18
2.3 正则表达式 22
2.4 正则表达式和BeautifulSoup 25
2.5 获取属性 26
2.6 Lambda 表达式 26
第3章 编写网络爬虫 28
3.1 遍历单个域名 28
3.2 抓取整个网站 32
3.3 在互联网上抓取 36
第4章 网络爬虫模型 41
4.1 规划和定义对象 41
4.2 处理不同的网站布局 45
4.3 结构化爬虫 49
4.3.1 通过搜索抓取网站 49
4.3.2 通过链接抓取网站 52
4.3.3 抓取多种类型的页面 54
4.4 关于网络爬虫模型的思考 55
第5章 Scrapy 57
5.1 安装Scrapy 57
5.2 创建一个简易爬虫 59
5.3 带规则的抓取 60
5.4 创建item 64
5.5 输出item 66
5.6 item 管线组件 66
5.7 Scrapy 日志管理 69
5.8 更多资源 70
第6章 存储数据 71
6.1 媒体文件 71
6.2 把数据存储到CSV 74
6.3 MySQL 75
6.3.1 安装MySQL 76
6.3.2 基本命令 78
6.3.3 与Python 整合 81
6.3.4 数据库技术与最佳实践 84
6.3.5 MySQL 里的“六度空间游戏” 86
6.4 Email 88
第二部分 高级网页抓取
第7章 读取文档 93
7.1 文档编码 93
7.2 纯文本 94
7.3 CSV 98
7.4 PDF 100
7.5 微软Word 和.docx 102
第8章 数据清洗 106
8.1 编写代码清洗数据 106
8.2 数据存储后再清洗 111
第9章 自然语言处理 115
9.1 概括数据 116
9.2 马尔可夫模型 119
9.3 自然语言工具包 124
9.3.1 安装与设置 125
9.3.2 用NLTK 做统计分析 126
9.3.3 用NLTK 做词性分析 128
9.4 其他资源 131
第10章 穿越网页表单与登录窗口进行抓取 132
10.1 Python Requests 库 132
10.2 提交一个基本表单 133
10.3 单选按钮、复选框和其他输入 134
10.4 提交文件和图像 136
10.5 处理登录和cookie 136
10.6 其他表单问题 139
第11章 抓取JavaScript 140
11.1 JavaScript 简介 140
11.2 Ajax 和动态HTML 143
11.2.1 在Python 中用Selenium 执行JavaScript 144
11.2.2 Selenium 的其他webdriver 149
11.3 处理重定向 150
11.4 关于JavaScript 的最后提醒 151
第12章 利用API 抓取数据 152
12.1 API 概述 152
12.1.1 HTTP 方法和API 154
12.1.2 更多关于API 响应的介绍 155
12.2 解析JSON 数据 156
12.3 无文档的API 157
12.3.1 查找无文档的API 159
12.3.2 记录未被记录的API 160
12.3.3 自动查找和记录API 160
12.4 API 与其他数据源结合 163
12.5 再说一点API 165
第13章 图像识别与文字处理 167
13.1 OCR 库概述 168
13.1.1 Pillow 168
13.1.2 Tesseract 168
13.1.3 NumPy 170
13.2 处理格式规范的文字 171
13.2.1 自动调整图像 173
13.2.2 从网站图片中抓取文字 176
13.3 读取验证码与训练Tesseract 178
13.4 获取验证码并提交答案 183
第14章 避开抓取陷阱 186
14.1 道德规范 186
14.2 让网络机器人看着像人类用户 187
14.2.1 修改请求头 187
14.2.2 用JavaScript 处理cookie 189
14.2.3 时间就是一切 191
14.3 常见表单安全措施 191
14.3.1 隐含输入字段值 192
14.3.2 避免蜜罐 192
14.4 问题检查表 194
第15章 用爬虫测试网站 196
15.1 测试简介 196
15.2 Python 单元测试 197
15.3 Selenium 单元测试 201
15.4 单元测试与Selenium 单元测试的选择 205
第16章 并行网页抓取 206
16.1 进程与线程 206
16.2 多线程抓取 207
16.2.1 竞争条件与队列 209
16.2.2 threading 模块 212
16.3 多进程抓取 214
16.3.1 多进程抓取 216
16.3.2 进程间通信 217
16.4 多进程抓取的另一种方法 219
第17章 远程抓取 221
17.1 为什么要用远程服务器 221
17.1.1 避免IP 地址被封杀 221
17.1.2 移植性与扩展性 222
17.2 Tor 代理服务器 223
17.3 远程主机 224
17.3.1 从网站主机运行 225
17.3.2 从云主机运行 225
17.4 其他资源 227
第18章 网页抓取的法律与道德约束 228
18.1 商标、版权、专利 228
18.2 侵害动产 230
18.3 计算机欺诈与滥用法 232
18.4 robots.txt 和服务协议 233
18.5 3 个网络爬虫 236
18.5.1 eBay 起诉Bidder’s Edge 侵害其动产 236
18.5.2 美国政府起诉Auernheimer 与《计算机欺诈与滥用法》 237
18.5.3 Field 起诉Google:版权和robots.txt 239
18.6 勇往直前 239
关于作者 241
关于封面 241
· · · · · · (收起)
读后感
5.3.2 基本命令 第二段第一句话: 除了用户自定义变量名(MySQL 5.x 版本是不区分大小写的,MySQL 5.0 之前的版本是不区分大小写的),MySQL 语句是不区分大小写的。(wtf ??????? 5.4 Email 查询圣诞节的代码缩进错误(sendMail函数和while都错了,会造成死循环! 8.2...
我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看...
1.可以尝试使用Google API 2.对于容易被封杀的站点使用tor来匿名 3.使用Tesseract识别验证码,可以训练特殊字体提高识别率 4.爬取整个网站的外链链接是件容易的事情 5.使用selenium作为测试网站的框架 6.注意cookie和request header的使用,努力让网站不把你当做爬虫对待
最近刚学了python3,看了一些讲语法的书籍和练手的题目,感觉这本书是一个比较好的系统的利用python完成从数据爬取到数据清洗整个流程的实践过程。觉得自己很有必要实践一下。刚刚看了下试读章节,15年出的英文版,难得的用python3进行工程实践而不只是讲语法的书。
用户评价
在学习Python的过程中,我发现网络爬虫是一个非常实用的技能,它能帮助我快速获取和处理大量信息。经过一番研究,我选择了《Python网络爬虫权威指南(第2版)》。这本书的特色在于其内容的全面性和深度。它不仅仅停留在表面的代码演示,而是深入到爬虫的各个环节,从网络请求的原理、HTML解析的技巧,到反爬机制的应对和分布式爬虫的实现,都进行了详尽的阐述。我尤其喜欢书中关于Scrapy框架的讲解,它提供了一个完整的项目骨架,让我能够快速搭建一个功能强大的爬虫。书中对于数据存储、异常处理以及爬虫的性能优化等方面的讨论,也让我受益匪浅。这本书是学习网络爬虫技术不可多得的宝藏,它能够帮助我建立起扎实的理论基础和丰富的实践经验。
我对Python语言一直有很好的基础,也曾尝试过一些简单的爬虫任务,但总感觉不够系统和深入。这本书的出现,正好弥补了我在这方面的知识空白。它从最底层的网络通信原理讲起,然后循序渐进地引入各种爬虫工具和技术。我特别喜欢它在讲解BeautifulSoup和lxml库时,对HTML解析的深入剖析,以及如何通过CSS选择器和XPath定位数据,这些细节的处理非常到位。而且,书中还介绍了如何使用Selenium来处理JavaScript动态加载的页面,这对于我之前遇到的很多“爬不下来”的网站来说,简直是救星。此外,书中关于数据去重、异常处理以及日志记录的讲解,也让我认识到构建一个健壮的爬虫系统需要注意的方方面面。这本书的学习曲线虽然略有挑战,但一旦掌握,收获将是巨大的。
拿到这本书的那一刻,我就迫不及待地翻阅起来。纸张的质感很好,印刷清晰,阅读体验非常舒适。我最欣赏的是它在介绍基础知识时,并没有流于表面,而是深入浅出地讲解了HTTP协议、HTML DOM结构等核心概念,这对于理解爬虫的工作原理至关重要。书中提供的代码示例也相当详尽,并且配有详细的注释,即使是初学者也能轻松理解。我尤其喜欢它在讲解BeautifulSoup和Scrapy框架的部分,步骤清晰,逻辑严谨,通过具体的实例演示了如何解析网页、提取数据,甚至构建一个完整的爬虫项目。我一直对如何高效地从大量网页中获取信息感到好奇,这本书无疑为我打开了一扇新的大门。它不仅教授了“如何做”,更重要的是阐述了“为什么这样做”,让我对爬虫技术的理解更加深刻,也更具启发性。
我是一名在校的学生,专业方向是计算机科学。在学习过程中,我发现网络爬虫技术在很多领域都有广泛的应用,比如舆情分析、市场调研、学术研究等。因此,我一直希望能掌握这项技能。在对比了市面上几本爬虫相关的书籍后,我最终选择了《Python网络爬虫权威指南(第2版)》。这本书的优点在于它的内容非常全面,几乎涵盖了网络爬虫的方方面面。从最基础的requests库的使用,到更复杂的Ajax数据抓取、Selenium模拟浏览器操作,再到分布式爬虫的构建和部署,都有详细的讲解。而且,书中还强调了爬虫的伦理和法律问题,这让我觉得这本书非常负责任,也提醒了我作为一个技术学习者应该具备的职业素养。这本书不仅是一本技术手册,更是一本能够引导我正确使用爬虫技术的指南。
作为一名拥有几年工作经验的开发者,我一直在关注数据驱动的解决方案。在工作中,我经常需要从各种网站获取数据来辅助决策,但以往的做法效率不高,也存在很多限制。朋友向我推荐了这本书,并称赞其内容专业且实操性强。阅读后,我发现这本书确实名不虚传。它没有停留在我已经熟悉的requests等基础库上,而是深入探讨了Scrapy框架的高级用法,例如中间件、Item Pipeline的定制,以及如何利用Scrapy-Redis实现分布式爬虫,这些内容对于提升爬虫的效率和可维护性至关重要。书中还提到了数据存储的多种方式,以及如何处理复杂的反爬策略,例如IP代理池、User-Agent轮换等,这些都是我在实际工作中经常会遇到的难题。我相信这本书能极大地提升我的工作效率,并为我带来更具竞争力的解决方案。
我是一个业余的编程爱好者,平时喜欢钻研各种技术。在接触Python的过程中,我发现网络爬虫技术非常有趣且实用。在朋友的推荐下,我购买了《Python网络爬虫权威指南(第2版)》。这本书的优点在于它的内容非常丰富,几乎涵盖了网络爬虫的所有重要方面。从基础的网络请求,到HTML解析,再到各种高级的抓取技巧,比如Ajax数据抓取、Selenium模拟浏览器操作,以及如何应对反爬机制,书中都有非常详细的讲解和实用的代码示例。我尤其喜欢书中关于Scrapy框架的介绍,它提供了一个完整的项目架构,能够帮助我更高效地构建爬虫。这本书不仅让我学习到了技术,更重要的是,它让我理解了爬虫的原理和思想,让我能够举一反三,解决实际遇到的问题。这本书绝对是Python爬虫爱好者的必备之选。
这本书的作者在网络爬虫领域无疑是权威级别的。从整体结构来看,它逻辑清晰,层层递进,从入门到精通,完全覆盖了网络爬虫的各个方面。我最欣赏的是它在讲解复杂技术时,能够用通俗易懂的语言进行解释,并且配以大量生动的代码示例。例如,在讲解如何应对网站的各种反爬措施时,作者不仅列举了常见的反爬策略,还提供了针对性的解决方案,并且详细说明了实现原理。我特别关注了书中关于分布式爬虫的部分,了解了如何利用Celery、Scrapy-Pool等工具构建一个高并发、高效率的爬虫系统,这对于处理大规模数据抓取任务非常有价值。这本书不仅能帮助我掌握技术,更能让我理解背后的设计思想和工程实践,从而能够举一反三,解决更多实际问题。
我是一名数据分析师,日常工作中经常需要从各种平台上收集数据。以前我依赖于一些第三方工具,但往往功能受限,且无法满足特定的抓取需求。在朋友的推荐下,我开始阅读《Python网络爬虫权威指南(第2版)》。这本书为我打开了新世界的大门。它不仅教授了我如何使用Python来编写爬虫,更重要的是,它教会了我如何去理解网页的结构,如何分析数据的来源,以及如何高效地提取和清洗数据。书中关于Ajax数据抓取和Selenium模拟浏览器操作的讲解,让我能够轻松应对那些前端动态加载数据的网站。此外,书中关于爬虫部署和维护的内容,也为我提供了一个更系统化的思路,让我能够构建出更稳定、更可靠的数据采集方案。这本书是我数据分析之路上的重要助力。
作为一名对技术充满好奇心的人,我对网络爬虫一直抱有浓厚的兴趣。在朋友的推荐下,我选择了《Python网络爬虫权威指南(第2版)》。这本书的排版和内容质量都非常出色。它从最基础的HTTP协议讲起,逐步深入到各种高级的爬虫技术,比如如何处理JavaScript渲染的页面、如何绕过各种反爬机制、以及如何构建分布式的爬虫系统。我特别欣赏书中对Scrapy框架的详细讲解,它提供了一个非常完善的爬虫开发框架,并且能够方便地进行扩展和定制。此外,书中还介绍了如何使用Selenium来模拟浏览器行为,这对于抓取动态加载内容的网页非常有用。这本书不仅仅是一本技术书籍,更是一本能够激发我探索欲望的读物,它让我对网络数据抓取有了更深入的理解,也为我开启了新的技术视野。
这本书的封面设计非常吸引人,配色沉稳又不失专业感,主视觉的Python Logo与爬虫相关的元素巧妙融合,让人一眼就能感受到其技术深度。我是在一次技术分享会上偶然听到的推荐,当时演讲者就重点提到了这本书,并分享了一些他通过书中技巧解决实际爬虫问题的案例。我本身对数据分析和信息抓取有浓厚的兴趣,一直想系统地学习网络爬虫技术,但市面上相关的书籍实在太多,不知如何选择。直到看到这本书的目录,我才确信这就是我一直在寻找的。目录的条理清晰,从基础概念、环境搭建,到各种高级技巧和实战案例,层层递进,非常适合我这种想要从零开始、循序渐进学习的读者。特别是关于数据清洗、反爬机制绕过以及分布式爬虫的内容,我非常期待能够深入学习,并应用到我正在进行的个人项目中,相信它能为我提供强大的技术支持和解决问题的思路。
主要库是urllib、request、selenium、bs4、pymysql,简单介绍了下scrapy框架,阅读难度不是很高,代码实例非常实用。
维基百科爬不了啊?!怎么办?
对于初学者跳跃有些大,而且涉及文本分词那里其实根本不会用到。 对于有基础的人又有些简单了。
主要库是urllib、request、selenium、bs4、pymysql,简单介绍了下scrapy框架,阅读难度不是很高,代码实例非常实用。
那个叫小宝的翻译,你说你抄袭第一版一样的也就罢了,108页程序里边变量名从第一版的item改成了word你在109页第十行还是写成item是不是太恶心了。编辑和校对也没仔细工作,差评。