题图:Freepik
在这个大数据时代,尤其是人工智能浪潮兴起的时代,不论是工程领域还是研究领域,数据已经成为必不可少的一部分,而数据的获取很大程度上依赖于爬虫的爬取,所以爬虫也逐渐变得火爆起来,甚至成为大部分工程师都想掌握的技能。
之前已经为读者推荐过一次《Python 3 网络爬虫开发实战》了,不仅是最受读者欢迎的 Python 爬虫类图书,也是 30 日最受读者欢迎的 IT 新书:
京东 IT 图书畅销榜截图
最近作者崔庆才老师做了一个非常全面的思维导图,帮助大家更好地学习,因此我们也跟大家分享一下。
点击查看大图
下载PDF:
https://pan.baidu.com/s/1Yf8ZB5SPveBmZmhHU-5zpQ
小崔老师从 2015 年开始接触爬虫,并将自己的学习总结分享在博客上,目前,博客访问量过百万。新书一上架即成为各大网店新书畅销榜榜首图书。此外,这本书也得到了多位技术大咖的推荐。
作者:崔庆才 定价:99
《Python3网络爬虫开发实战》全面介绍如何利用 Python 3 开发网络爬虫。
书中首先详细介绍了环境配置过程和爬虫基础知识
然后讨论了 urllib、requests 等请求库和 Beautiful Soup、XPath、pyquery 等解析库以及文本和各类数据库的存储方法
接着通过多个案例介绍了分析 Ajax 进行数据爬取,Selenium 和 Splash 进行动态网站爬取的过程
接着介绍了爬虫的一些技巧,如使用代理爬取和维护动态代理池的方法,ADSL 拨号代理的使用,图形、极验、点触、宫格等各类验证码的破解方法,模拟登录网站爬取的方法及 Cookies 池的维护
此外,本书还结合移动互联网的特点探讨了使用 Charles、mitmdump、Appium 等工具实现 App 爬取的方法,紧接着介绍了 pyspider 框架、Scrapy 框架的使用和分布式爬虫的知识,最后介绍了 Bloom Filter 效率优化、Docker 和 Scrapyd 爬虫部署、Gerapy 爬虫管理等方面的知识
长按京东购
长按当当购
目
第1章 开发环境配置 1
1.1 Python 3 的安装 1
1.2 请求库的安装 10
1.3 解析库的安装 19
1.4 数据库的安装 26
1.5 存储库的安装 39
1.6 Web 库的安装 41
1.7 App 爬取相关库的安装 43
1.8 爬虫框架的安装 59
1.9 部署相关库的安装 67
第2章 爬虫基础 77
2.1 HTTP基本原理 77
2.2 网页基础 87
2.3 爬虫的基本原理 93
2.4 会话和 Cookies 95
2.5 代理的基本原理 99
第3章 基本库的使用 102
3.1 使用 urllib 102
3.2 使用 requests 122
3.4 抓取猫眼电影排行 150
第4章 解析库的使用 158
4.1 使用 XPath 158
4.2 使用 Beautiful Soup 168
4.3 使用 pyquery 184
第5章 数据存储 197
5.1 文件存储 197
5.2 关系型数据库存储 207
5.3 非关系型数据库存储 213
第6章 Ajax数据爬取 232
6.1 什么是 Ajax 232
6.2 Ajax 分析方法 234
6.3 Ajax 结果提取 238
6.4 分析 Ajax 爬取今日头条街拍美图 242
第7章 动态渲染页面爬取 249
7.1 Selenium 的使用 249
7.2 Splash 的使用 262
7.3 Splash 负载均衡配置 286
7.4 使用 Selenium 爬取淘宝商品 289
第8章 验证码的识别 298
8.1 图形验证码的识别 298
8.2 极验滑动验证码的识别 301
8.3 点触验证码的识别 311
8.4 微博宫格验证码的识别 318
第9章 代理的使用 326
9.1 代理的设置 326
9.2 代理池的维护 333
9.3 付费代理的使用 347
9.4 ADSL 拨号代理 351
9.5 使用代理爬取微信公众号文章 364
第10章 模拟登录 379
10.1 模拟登录并爬取 GitHub 379
10.2 Cookies 池的搭建 385
第11章 App 的爬取 398
11.1 Charles 的使用 398
11.2 mitmproxy 的使用 405
11.3 mitmdump 爬取“得到”App电子书信息 417
11.4 Appium 的基本使用 423
11.5 Appium 爬取微信朋友圈 433
11.6 Appium+mitmdump 爬取京东商品 437
第12章 pyspider 框架的使用 443
12.1 pyspider 框架介绍 443
12.2 pyspider 的基本使用 445
12.3 pyspider 用法详解 459
第13章 Scrapy 框架的使用 468
13.1 Scrapy 框架介绍 468
13.2 Scrapy 入门 470
13.3 Selector 的用法 480
13.4 Spider 的用法 486
13.5 Downloader Middleware 的用法 487
13.6 Spider Middleware 的用法 494
13.7 Item Pipeline 的用法 496
13.8 Scrapy 对接 Selenium 506
13.9 Scrapy 对接 Splash 511
13.10 Scrapy 通用爬虫 516
13.11 Scrapyrt 的使用 533
13.12 Scrapy 对接 Docker 536
13.13 Scrapy 爬取新浪微博 541
第14章 分布式爬虫 555
14.1 分布式爬虫原理 555
14.2 Scrapy-Redis 源码解析 558
14.3 Scrapy 分布式实现 564
14.4 Bloom Filter 的对接 569
第15章 分布式爬虫的部署 577
15.1 Scrapyd 分布式部署 577
15.2 Scrapyd-Client 的使用 582
这 15 章的内容,文字简单归纳如下。
第 1 章介绍了本书所涉及的所有环境的配置详细流程,兼顾 Windows、Linux、Mac 三大平台。本章不用逐节阅读,需要的时候查阅即可。
第 2 章介绍了学习爬虫之前需要了解的基础知识,如 HTTP、爬虫、代理的基本原理、网页基本结构等内容,对爬虫没有任何了解的读者建议好好了解这一章的知识。
第 3 章介绍了最基本的爬虫操作,一般学习爬虫都是从这一步学起的。这一章介绍了最基本的两个请求库(urllib和requests)和正则表达式的基本用法。学会了这一章,就可以掌握最基本的爬虫技术了。
第 4 章介绍了页解析库的基本用法,包括 Beautiful Soup、XPath、pyquery 的基本使用方法,它们可以使得信息的提取更加方便、快捷,是爬虫必备利器。
第 5 章介绍了数据存储的常见形式及存储操作,包括 TXT、JSON、CSV 各种文件的存储,以及关系型数据库MySQL和非关系型数据库MongoDB、Redis 存储的基本存储操作。学会了这些内容,我们可以灵活方便地保存爬取下来的数据。
第 6 章介绍了 Ajax 数据爬取的过程,一些网页的数据可能是通过Ajax请求API接口的方式加载的,用常规方法无法爬取,本章介绍了使用Ajax进行数据爬取的方法。
第 7 章介绍了动态渲染页面的爬取,现在越来越多的网站内容是经过JavaScript 渲染得到的,而原始HTML文本可能不包含任何有效内容,而且渲染过程可能涉及某些JavaScript加密算法,可以使用 Selenium、Splash 等工具来实现模拟浏览器进行数据爬取的方法。
第 8 章介绍了验证码的相关处理方法。验证码是网站反爬虫的重要措施,我们可以通过本章了解到各类验证码的应对方案,包括图形验证码、极验验证码、点触验证码、微博宫格验证码的识别。
第 9 章介绍了代理的使用方法,限制 IP 的访问也是网站反爬虫的重要措施。另外,我们也可以使用代理来伪装爬虫的真实IP,使用代理可以有效解决这个问题。通过本章,我们了解到代理的使用方法,还学习了代理池的维护方法,以及 ADSL 拨号代理的使用方法。
第 10 章介绍了模拟登录爬取的方法,某些网站需要登录才可以看到需要的内容,这时就需要用爬虫模拟登录网站再进行爬取了。本章介绍了最基本的模拟登录方法以及维护一个 Cookies 池的方法。
第 11 章介绍了App的爬取方法,包括基本的 Charles、mitmproxy 抓包软件的使用。此外,还介绍了 mitmdump 对接 Python 脚本进行实时抓取的方法,以及使用 Appium 完全模拟手机 App 的操作进行爬取的方法。
第 12 章介绍了 pyspider 爬虫框架及用法,该框架简洁易用、功能强大,可以节省大量开发爬虫的时间。本章结合案例介绍了使用该框架进行爬虫开发的方法。
第 13 章介绍了 Scrapy 爬虫框架及用法。Scrapy 是目前使用最广泛的爬虫框架,本章介绍了它的基本架构、原理及各个组件的使用方法,另外还介绍了 Scrapy 通用化配置、对接 Docker 的一些方法。
第 14 章介绍了分布式爬虫的基本原理及实现方法。为了提高爬取效率,分布式爬虫是必不可少的,本章介绍了使用 Scrapy 和 Redis 实现分布式爬虫的方法。
第 15 章介绍了分布式爬虫的部署及管理方法。方便快速地完成爬虫的分布式部署,可以节省开发者大量的时间。本章结合 Scrapy、Scrapyd、Docker、Gerapy 等工具介绍了分布式爬虫部署和管理的实现。
各位小伙伴目前工作中处理数据的部分多吗? 都是些什么工作?如果大家在学习爬虫,分享一下自己学习爬虫知识的心得,或者说说自己曾经爬到过什么有趣的数据,又或者学会爬虫之后最想爬取什么数据。
精选评论挑选 3 位小伙伴送出赠书,截止 5 月 28 日。
☟ 点击【阅读原文】图灵各种 Python 好书