第1章 爬蟲基礎 1
1.1 HTTP基本原理 1
1.2 Web 網頁基礎 12
1.3 爬蟲的基本原理 19
1.4 Session和Cookie 21
1.5 代理的基本原理 24
1.6 多綫程和多進程的基本原理 26
第2章 基本庫的使用 29
2.1 urllib的使用 29
2.2 requests的使用 47
2.3 正則錶達式 63
2.4 httpx的使用 73
2.5 基礎爬蟲案例實戰 78
第3章 網頁數據的解析提取 90
3.1 XPath的使用 90
3.2 Beautiful Soup的使用 99
3.3 pyquery的使用 113
3.4 parsel 的使用 124
第4章 數據的存儲 128
4.1 TXT 文本文件存儲 128
4.2 JSON 文件存儲 130
4.3 CSV 文件存儲 134
4.4 MySQL 存儲 138
4.5 MongoDB 文檔存儲 144
4.6 Redis緩存存儲 151
4.7 Elasticsearch 搜索引擎存儲 159
4.8 RabbitMQ 的使用 166
第5章 Ajax 數據爬取 174
5.1 什麼是 Ajax 174
5.2 Ajax分析方法 176
5.3 Ajax 分析與爬取實戰 179
第6章 異步爬蟲 191
6.1 協程的基本原理 191
6.2 aiohttp的使用 201
6.3 aiohttp 異步爬取實戰 207
第7章 JavaScript 動態渲染頁麵爬取 212
7.1 Selenium 的使用 212
7.2 Splash 的使用 226
7.3 Pyppeteer 的使用 242
7.4 Playwright 的使用 257
7.5 Selenium 爬取實戰 269
7.6 Pyppeteer 爬取實戰 276
7.7 CSS 位置偏移反爬案例分析與爬取實戰 282
7.8 字體反爬案例分析與爬取實戰 287
第8章 驗證碼的識彆 293
8.1 使用 OCR 技術識彆圖形驗證碼 293
8.2 使用 OpenCV 識彆滑動驗證碼的缺口 298
8.3 使用深度學習識彆圖形驗證碼 304
8.4 使用深度學習識彆滑動驗證碼的缺口 309
8.5 使用打碼平颱識彆驗證碼 316
8.6 手機驗證碼的自動化處理 324
第9章 代理的使用 331
9.1 代理的設置 331
9.2 代理池的維護 340
9.3 付費代理的使用 351
9.4 ADSL 撥號代理的搭建方法 357
9.5 代理反爬案例爬取實戰 365
第 10章 模擬登錄 373
10.1 模擬登錄的基本原理 373
10.2 基於Session和Cookie的模擬登錄爬取實戰 376
10.3 基於JWT的模擬登錄爬取實戰 381
10.4 大規模賬號池的搭建 385
第 11章 JavaScript 逆嚮爬蟲 397
11.1 網站加密和混淆技術簡介 397
11.2 瀏覽器調試常用技巧 413
11.3 JavaScript Hook 的使用 430
11.4 無限 debugger 的原理與繞過 440
11.5 使用 Python 模擬執行 JavaScript 445
11.6 使用 Node.js 模擬執行 JavaScript 451
11.7 瀏覽器環境下 JavaScript 的模擬執行 454
11.8 AST 技術簡介 460
11.9 使用 AST 技術還原混淆代碼 472
11.10 特殊混淆案例的還原 480
11.11 WebAssembly 案例分析和爬取實戰 490
11.12 JavaScript 逆嚮技巧總結 498
11.13 JavaScript 逆嚮爬取實戰 505
第 12章 App 數據的爬取 530
12.1 Charles 抓包工具的使用 530
12.2 mitmproxy 抓包工具的使用 538
12.3 mitmdump 實時抓包處理 544
12.4 Appium 的使用 551
12.5 基於 Appium 的 App 爬取實戰 562
12.6 Airtest 的使用 568
12.7 基於 Airtest 的 App 爬取實戰 585
12.8 手機群控爬取實戰 591
12.9 雲手機的使用 594
第 13章 Android 逆嚮 603
13.1 jadx 的使用 603
13.2 JEB 的使用 615
13.3 Xposed 框架的使用 624
13.4 基於 Xposed 的爬取實戰案例 635
13.5 Frida 的使用 643
13.6 SSL Pining 問題的解決方案 650
13.7 Android 脫殼技術簡介與實戰 657
13.8 利用 IDA Pro 靜態分析和動態調試 so 文件 664
13.9 基於 Frida-RPC 模擬執行 so 文件 680
13.10 基於 AndServer-RPC 模擬執行 so 文件 685
13.11 基於 unidbg 模擬執行 so 文件 692
第 14章 頁麵智能解析 700
14.1 頁麵智能解析簡介 700
14.2 詳情頁智能解析算法簡介 707
14.3 詳情頁智能解析算法的實現 714
14.4 列錶頁智能解析算法簡介 722
14.5 列錶頁智能解析算法的實現 727
14.6 如何智能分辨列錶頁和詳情頁 735
第 15章 Scrapy框架的使用 739
15.1 Scrapy框架介紹 739
15.2 Scrapy入門 743
15.3 Selector 的使用 754
15.4 Spider 的使用 759
15.5 Downloader Middleware的使用 766
15.6 Spider Middleware的使用 775
15.7 Item Pipeline的使用 781
15.8 Extension的使用 792
15.9 Scrapy 對接 Selenium 795
15.10 Scrapy 對接 Splash 801
15.11 Scrapy 對接 Pyppeteer 806
15.12 Scrapy 規則化爬蟲 813
15.13 Scrapy 實戰 827
第 16章 分布式爬蟲 840
16.1 分布式爬蟲理念 840
16.2 Scrapy-Redis原理和源碼解析 842
16.3 基於Scrapy-Redis的分布式爬蟲實現 847
16.4 基於Bloom Filter進行大規模去重 851
16.5 基於RabbitMQ的分布式爬蟲 859
第 17章 爬蟲的管理和部署 862
17.1 Scrapyd和ScrapydAPI的使用 862
17.2 Scrapyd-Client 的使用 867
17.3 Gerapy 爬蟲管理框架的使用 869
17.4 將Scrapy 項目打包成 Docker 鏡像 873
17.5 Docker Compose 的使用 878
17.6 Kubernetes的使用 880
17.7 用 Kubernetes 部署和管理 Scrapy 爬蟲 888
17.8 Scrapy 分布式爬蟲的數據統計方案 899
17.9 基於Prometheus和Grafana的分布式爬蟲監控方案 904
附錄 爬蟲與法律 917
· · · · · · (
收起)
◎ 編輯推薦
Python 之父 Guido van Rossum 推薦的爬蟲入門書,第 1 版銷量近 100000 冊;
微軟中國大數據工程師、博客文章過百萬的靜覓大神力作;
新增異步爬蟲、JavaScript 逆嚮、App 逆嚮、智能網頁解析、深度學習識彆驗證碼、Kubernetes 運維及部署等知識點
◎ 內容簡介
本書介紹瞭如何利用 Python 3 開發網絡爬蟲。本書為第 2 版,相比於第 1 版,為每個知識點的實戰項目配備瞭針對性的練習平颱,避免瞭案例過期的問題。另外,主要增加瞭異步爬蟲、JavaScript 逆嚮、App 逆嚮、頁麵智能解析、深度學習識彆驗證碼、Kubernetes 運維及部署等知識點,同時也對各個爬蟲知識點涉及的請求、存儲、解析、測試等工具進行瞭豐富和更新。
本書適閤Python 程序員閱讀。
◎ 大佬推薦
I am happy to see that Python is so widely used in the Chinese IT community. I hope this book will help more people understand Python and web crawling/scraping.
——Guido van Rossum,Creator of Python, Distinguished Engineer,Microsoft
時代在不斷進步,我們需要不斷學習,慶纔在工作上是這樣,在興趣上也是這樣,這本爬蟲書充分體現瞭這一點。第 2 版相比第 1 版內容更加全麵,覆蓋的知識點更為廣泛,也更貼近技術前沿。本書具有通俗易懂的講解和豐富的案例代碼,可以讓讀者係統地學習爬蟲相關的各種知識,我極力推薦大傢閱讀本書。
——曾文峰,微軟亞洲互聯網工程院副院長、微軟公司全球閤夥人
在今天這個數據驅動的人工智能時代,這個有越來越多移動互聯網數據來自 App 的時代,主流的數據來源平颱幾乎都提高瞭數據采集的風控水平,這導緻數據采集的難度越來越大,此時行業中需要一本書來幫助爬蟲工程師提高技術水平。崔慶纔的這本《Python 3 網絡爬蟲開發實戰(第2版)》是市場上截至目前公開數據采集領域最好的圖書之一,這本書能解答數據采集工作中遇到的大部分問題,更難得的是作者還建立瞭技術討論群,方便大傢交流和提高。
——梁斌 penny,北京八友科技總經理、清華大學博士
作為第 1 版的升級版,本書增加瞭很多前沿的爬蟲相關技術。從爬蟲入門到分布式抓取,本書詳細介紹瞭爬蟲技術的各個要點,並針對不同場景提齣瞭不同的解決方案。另外,書中的實戰案例也在第 1 版的基礎上做瞭重構升級,能幫助讀者更好地學習爬蟲技術。本書內容通俗易懂,乾貨滿滿,強烈推薦給大傢!
——宋睿華,中國人民大學高瓴人工智能學院長聘副教授