本书介绍了如何利用 Python 3 开发网络爬虫。本书为 2 版,相比于 * 版,为每个知识点的实战项目配备了针对性的练习平台,避*了案例过期的问题。另外,主要增加了异步爬虫、JavaScript 逆向、App 逆向、页面智能解析、深度学习识别验证码、Kubernetes 运维及*署等知识点,同时也对各个爬虫知识点涉及的请求、存储、解析、测试等工具进行了丰富和更新。 本书适合Python 程序员阅读。
*章 爬虫基础 **.* HTTP基本原理 **.2 Web 网页基础 *2*.3 爬虫的基本原理 *9*.4 Session和Cookie 2**.5 代理的基本原理 24*.6 多线程和多进程的基本原理 26 2章 基本库的使用 292.* urllib的使用 292.2 requests的使用 472.3 正则表达式 632.4 http的使用 732.5 基础爬虫案例实战 783章 网页数据的解析提取 903.* XPath的使用 903.2 Beautiful Soup的使用 993.3 pyquery的使用 **33.4 parsel 的使用 *244章 数据的存储 *284.* TXT 文本文件存储 *284.2 JSON 文件存储 *304.3 CSV 文件存储 *344.4 MySQL 存储 *384.5 MongoDB 文档存储 *444.6 Redis缓存存储 *5*4.7 Elasticsearch 搜索引擎存储 *594.8 RabbitMQ 的使用 *665章 Aja 数据爬取 *745.* 什么是 Aja *745.2 Aja分析方法 *765.3 Aja 分析与爬取实战 *796章 异步爬虫 *9*6.* 协程的基本原理 *9*6.2 aiohttp的使用 20*6.3 aiohttp 异步爬取实战 2077章 JavaScript 动态渲染页面爬取 2*27.* Selenium 的使用 2*27.2 Splash 的使用 2267.3 Pyppeteer 的使用 2427.4 Playwright 的使用 2577.5 Selenium 爬取实战 2697.6 Pyppeteer 爬取实战 2767.7 CSS 位置偏移反爬案例分析与爬取实战 2827.8 字体反爬案例分析与爬取实战 2878章 验证码的识别 2938.* 使用 OCR 技术识别图形验证码 2938.2 使用 OpenCV 识别滑动验证码的缺口 2988.3 使用深度学习识别图形验证码 3048.4 使用深度学习识别滑动验证码的缺口 3098.5 使用打码平台识别验证码 3*68.6 手机验证码的自动化处理 3249章 代理的使用 33*9.* 代理的设置 33*9.2 代理池的维护 3409.3 付费代理的使用 35*9.4 ADSL 拨号代理的搭建方法 3579.5 代理反爬案例爬取实战 365 *0章 模拟登录 373*0.* 模拟登录的基本原理 373*0.2 基于Session和Cookie的模拟登录爬取实战 376*0.3 基于JWT的模拟登录爬取实战 38**0.4 大规模账号池的搭建 385 **章 JavaScript 逆向爬虫 397**.* 网站加密和混淆技术简介 397**.2 浏览器调试常用技巧 4*3**.3 JavaScript Hook 的使用 430**.4 *限 debugger 的原理与绕过 440**.5 使用 Python 模拟执行 JavaScript 445**.6 使用 de.js 模拟执行 JavaScript 45***.7 浏览器环境下 JavaScript 的模拟执行 454**.8 AST 技术简介 460**.9 使用 AST 技术还原混淆代码 472**.*0 *殊混淆案例的还原 480**.** WebAssembly 案例分析和爬取实战 490**.*2 JavaScript 逆向技巧总结 498**.*3 JavaScript 逆向爬取实战 505 *2章 App 数据的爬取 530*2.* Charles 抓*工具的使用 530*2.2 mitmproy 抓*工具的使用 538*2.3 mitmdump 实时抓*处理 544*2.4 Appium 的使用 55**2.5 基于 Appium 的 App 爬取实战 562*2.6 Airtest 的使用 568*2.7 基于 Airtest 的 App 爬取实战 585*2.8 手机控爬取实战 59**2.9 云手机的使用 594 *3章 Android 逆向 603*3.* jad 的使用 603*3.2 JEB 的使用 6*5*3.3 Xposed 框架的使用 624*3.4 基于 Xposed 的爬取实战案例 635*3.5 Frida 的使用 643*3.6 SSL Pining 问题的解决方案 650*3.7 Android 脱壳技术简介与实战 657*3.8 利用 IDA Pro 静态分析和动态调试 so 文件 664*3.9 基于 Frida-RPC 模拟执行 so 文件 680*3.*0 基于 AndServer-RPC 模拟执行 so 文件 685*3.** 基于 unidbg 模拟执行 so 文件 692 *4章 页面智能解析 700*4.* 页面智能解析简介 700*4.2 详情页智能解析算法简介 707*4.3 详情页智能解析算法的实现 7*4*4.4 列表页智能解析算法简介 722*4.5 列表页智能解析算法的实现 727*4.6 如何智能分辨列表页和详情页 735 *5章 Scrapy框架的使用 739*5.* Scrapy框架介绍 739*5.2 Scrapy入门 743*5.3 Selector 的使用 754*5.4 Spider 的使用 759*5.5 Downloader Middleware的使用 766*5.6 Spider Middleware的使用 775*5.7 Item Pipeline的使用 78**5.8 Etension的使用 792*5.9 Scrapy 对接 Selenium 795*5.*0 Scrapy 对接 Splash 80**5.** Scrapy 对接 Pyppeteer 806*5.*2 Scrapy 规则化爬虫 8*3*5.*3 Scrapy 实战 827 *6章 分布式爬虫 840*6.* 分布式爬虫理念 840*6.2 Scrapy-Redis原理和源码解析 842*6.3 基于Scrapy-Redis的分布式爬虫实现 847*6.4 基于Bloom Filter进行大规模去重 85**6.5 基于RabbitMQ的分布式爬虫 859 *7章 爬虫的管理和*署 862*7.* Scrapyd和ScrapydAPI的使用 862*7.2 Scrapyd-Client 的使用 867*7.3 Gerapy 爬虫管理框架的使用 869*7.4 将Scrapy 项目打*成 Docker 镜像 873*7.5 Docker Compose 的使用 878*7.6 Kubernetes的使用 880*7.7 用 Kubernetes *署和管理 Scrapy 爬虫 888*7.8 Scrapy 分布式爬虫的数据统计方案 899*7.9 基于Prometheus和Grafana的分布式爬虫监控方案 904附录 爬虫与法律 9*7