Python3網(wǎng)絡(luò)爬蟲開發(fā)實戰(zhàn) 第2版
鏈接:pan.baidu.com/s/1QTuyzUssHpDzA_-G0X1mZQ?pwd=36r6?
提取碼:36r6

本書介紹了如何利用 Python 3 開發(fā)網(wǎng)絡(luò)爬蟲。本書為第 2 版,相比于第 1 版,為每個知識點的實戰(zhàn)項目配備了針對性的練習(xí)平臺,避免了案例過期的問題。另外,主要增加了異步爬蟲、JavaScript 逆向、App 逆向、頁面智能解析、深度學(xué)習(xí)識別驗證碼、Kubernetes 運維及部署等知識點,同時也對各個爬蟲知識點涉及的請求、存儲、解析、測試等工具進行了豐富和更新。
本書適合Python 程序員閱讀。
作者簡介
崔慶才
微軟(中國)軟件工程師,北京航空航天大學(xué)碩士,主要研究網(wǎng)絡(luò)爬蟲、Web 開發(fā)、機器學(xué)習(xí)等方向。
精彩書評
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
時代在不斷進步,我們需要不斷學(xué)習(xí),慶才在工作上是這樣,在興趣上也是這樣,這本爬蟲書充分體現(xiàn)了這一點。第 2 版相比第 1 版內(nèi)容更加全面,覆蓋的知識點更為廣泛,也更貼近技術(shù)前沿。本書具有通俗易懂的講解和豐富的案例代碼,可以讓讀者系統(tǒng)地學(xué)習(xí)爬蟲相關(guān)的各種知識,我極力推薦大家閱讀本書。
——曾文峰,微軟亞洲互聯(lián)網(wǎng)工程院副院長、微軟公司全球合伙人
在今天這個數(shù)據(jù)驅(qū)動的人工智能時代,這個有越來越多移動互聯(lián)網(wǎng)數(shù)據(jù)來自 App 的時代,主流的數(shù)據(jù)來源平臺幾乎都提高了數(shù)據(jù)采集的風(fēng)控水平,這導(dǎo)致數(shù)據(jù)采集的難度越來越大,此時行業(yè)中需要一本書來幫助爬蟲工程師提高技術(shù)水平。崔慶才的這本《Python 3 網(wǎng)絡(luò)爬蟲開發(fā)實戰(zhàn)(第2版)》是市場上截至目前公開數(shù)據(jù)采集領(lǐng)域最好的圖書之一,這本書能解答數(shù)據(jù)采集工作中遇到的大部分問題,更難得的是作者還建立了技術(shù)討論群,方便大家交流和提高。
——梁斌 penny,北京八友科技總經(jīng)理、清華大學(xué)博士
作為第 1 版的升級版,本書增加了很多前沿的爬蟲相關(guān)技術(shù)。從爬蟲入門到分布式抓取,本書詳細介紹了爬蟲技術(shù)的各個要點,并針對不同場景提出了不同的解決方案。另外,書中的實戰(zhàn)案例也在第 1 版的基礎(chǔ)上做了重構(gòu)升級,能幫助讀者更好地學(xué)習(xí)爬蟲技術(shù)。本書內(nèi)容通俗易懂,干貨滿滿,強烈推薦給大家!
——宋睿華,中國人民大學(xué)高瓴人工智能學(xué)院長聘副教授
目錄
第 1章 爬蟲基礎(chǔ) 1
1.1 HTTP基本原理 1
1.2 Web 網(wǎng)頁基礎(chǔ) 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 基礎(chǔ)爬蟲案例實戰(zhàn) 78
第3章 網(wǎng)頁數(shù)據(jù)的解析提取 90
3.1 XPath的使用 90
3.2 Beautiful Soup的使用 99
3.3 pyquery的使用 113
3.4 parsel 的使用 124
第4章 數(shù)據(jù)的存儲 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 數(shù)據(jù)爬取 174
5.1 什么是 Ajax 174
5.2 Ajax分析方法 176
5.3 Ajax 分析與爬取實戰(zhàn) 179
第6章 異步爬蟲 191
6.1 協(xié)程的基本原理 191
6.2 aiohttp的使用 201
6.3 aiohttp 異步爬取實戰(zhàn) 207
第7章 JavaScript 動態(tài)渲染頁面爬取 212
7.1 Selenium 的使用 212
7.2 Splash 的使用 226
7.3 Pyppeteer 的使用 242
7.4 Playwright 的使用 257
7.5 Selenium 爬取實戰(zhàn) 269
7.6 Pyppeteer 爬取實戰(zhàn) 276
7.7 CSS 位置偏移反爬案例分析與爬取實戰(zhàn) 282
7.8 字體反爬案例分析與爬取實戰(zhàn) 287
第8章 驗證碼的識別 293
8.1 使用 OCR 技術(shù)識別圖形驗證碼 293
8.2 使用 OpenCV 識別滑動驗證碼的缺口 298
8.3 使用深度學(xué)習(xí)識別圖形驗證碼 304
8.4 使用深度學(xué)習(xí)識別滑動驗證碼的缺口 309
8.5 使用打碼平臺識別驗證碼 316
8.6 手機驗證碼的自動化處理 324
第9章 代理的使用 331
9.1 代理的設(shè)置 331
9.2 代理池的維護 340
9.3 付費代理的使用 351
9.4 ADSL 撥號代理的搭建方法 357
9.5 代理反爬案例爬取實戰(zhàn) 365
第 10章 模擬登錄 373
10.1 模擬登錄的基本原理 373
10.2 基于Session和Cookie的模擬登錄爬取實戰(zhàn) 376
10.3 基于JWT的模擬登錄爬取實戰(zhàn) 381
10.4 大規(guī)模賬號池的搭建 385
第 11章 JavaScript 逆向爬蟲 397
11.1 網(wǎng)站加密和混淆技術(shù)簡介 397
11.2 瀏覽器調(diào)試常用技巧 413
11.3 JavaScript Hook 的使用 430
11.4 無限 debugger 的原理與繞過 440
11.5 使用 Python 模擬執(zhí)行 JavaScript 445
11.6 使用 Node.js 模擬執(zhí)行 JavaScript 451
11.7 瀏覽器環(huán)境下 JavaScript 的模擬執(zhí)行 454
11.8 AST 技術(shù)簡介 460
11.9 使用 AST 技術(shù)還原混淆代碼 472
11.10 特殊混淆案例的還原 480
11.11 WebAssembly 案例分析和爬取實戰(zhàn) 490
11.12 JavaScript 逆向技巧總結(jié) 498
11.13 JavaScript 逆向爬取實戰(zhàn) 505
第 12章 App 數(shù)據(jù)的爬取 530
12.1 Charles 抓包工具的使用 530
12.2 mitmproxy 抓包工具的使用 538
12.3 mitmdump 實時抓包處理 544
12.4 Appium 的使用 551
12.5 基于 Appium 的 App 爬取實戰(zhàn) 562
12.6 Airtest 的使用 568
12.7 基于 Airtest 的 App 爬取實戰(zhàn) 585
12.8 手機群控爬取實戰(zhàn) 591
12.9 云手機的使用 594
第 13章 Android 逆向 603
13.1 jadx 的使用 603
13.2 JEB 的使用 615
13.3 Xposed 框架的使用 624
13.4 基于 Xposed 的爬取實戰(zhàn)案例 635
13.5 Frida 的使用 643
13.6 SSL Pining 問題的解決方案 650
13.7 Android 脫殼技術(shù)簡介與實戰(zhàn) 657
13.8 利用 IDA Pro 靜態(tài)分析和動態(tài)調(diào)試 so 文件 664
13.9 基于 Frida-RPC 模擬執(zhí)行 so 文件 680
13.10 基于 AndServer-RPC 模擬執(zhí)行 so 文件 685
13.11 基于 unidbg 模擬執(zhí)行 so 文件 692
第 14章 頁面智能解析 700
14.1 頁面智能解析簡介 700
14.2 詳情頁智能解析算法簡介 707
14.3 詳情頁智能解析算法的實現(xiàn) 714
14.4 列表頁智能解析算法簡介 722
14.5 列表頁智能解析算法的實現(xiàn) 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 規(guī)則化爬蟲 813
15.13 Scrapy 實戰(zhàn) 827
第 16章 分布式爬蟲 840
16.1 分布式爬蟲理念 840
16.2 Scrapy-Redis原理和源碼解析 842
16.3 基于Scrapy-Redis的分布式爬蟲實現(xiàn) 847
16.4 基于Bloom Filter進行大規(guī)模去重 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 分布式爬蟲的數(shù)據(jù)統(tǒng)計方案 899
17.9 基于Prometheus和Grafana的分布式爬蟲監(jiān)控方案 904
附錄 爬蟲與法律 917
查看全部↓