Python3網絡爬蟲開發實戰 第2版
作 者:崔慶才 著
出 版 社:人民郵電出版社
出版日期:2021年11月01日
頁 數:928
裝 幀:平裝
ISBN:9787115577092
主編推薦
1.Python 之父 Guido van Rossum 推薦的爬蟲入門書,第 1 版銷量近 100000 冊; 2.微軟中國大數據工程師、博客文章過百萬的博主靜覓力作; 3.新增異步爬蟲、JavaScript 逆向、App 逆向、智能網頁解析、深度學習識別驗證碼、Kubernetes 運維及部署等知識點; 4.相比於第一版,為每個知識點的實戰項目配備了針對性的練習平台,避免了案例過期的問題。
目錄
●第1章爬蟲基礎1
1.1HTTP基本原理1
1.2Web網頁基礎12
1.3爬蟲的基本原理19
1.4Session和Cookie21
1.5代理的基本原理24
1.6多線程和多進程的基本原理26
第2章基本庫的使用29
2.1urllib的使用29
2.2requests的使用47
2.3正則表達式63
2.4httpx的使用73
2.5基礎爬蟲案例實戰78
第3章網頁數據的解析提取90
3.1XPath的使用90
3.2Beautiful Soup的使用99
3.3pyquery的使用113
3.4parsel的使用124
第4章數據的存儲128
4.1TXT文本文件存儲128
4.2JSON文件存儲130
4.3CSV文件存儲134
4.4MySQL存儲138
4.5MongoDB文檔存儲144
4.6Redis緩存存儲151
4.7Elasticsearch搜索引擎存儲159
4.8RabbitMQ的使用166
第5章Ajax數據爬取174
5.1什麼是Ajax174
5.2Ajax分析方法176
5.3Ajax分析與爬取實戰179
第6章異步爬蟲191
6.1協程的基本原理191
6.2aiohttp的使用201
6.3aiohttp異步爬取實戰207
第7章JavaScript動態渲染頁面爬取212
7.1Selenium的使用212
7.2Splash的使用226
7.3Pyppeteer的使用242
7.4Playwright的使用257
7.5Selenium爬取實戰269
7.6Pyppeteer爬取實戰276
7.7CSS位置偏移反爬案例分析與爬取實戰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.4ADSL撥號代理的搭建方法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.3JavaScript Hook的使用430
11.4無限debugger的原理與繞過440
11.5使用Python模擬執行JavaScript445
11.6使用Node. js模擬執行JavaScript451
11.7瀏覽器環境下JavaScript的模擬執行454
11.8AST技術簡介460
11.9使用AST技術還原混淆代碼472
11.10特殊混淆案例的還原480
11.11WebAssembly案例分析和爬取實戰490
11.12JavaScript逆向技巧總結498
11.13JavaScript逆向爬取實戰505
第12章App數據的爬取530
12.1Charles抓包工具的使用530
12.2mitmproxy抓包工具的使用538
12.3mitmdump實時抓包處理544
12.4Appium的使用551
12.5基於Appium的App爬取實戰562
12.6Airtest的使用568
12.7基於Airtest的App爬取實戰585
12.8手機群控爬取實戰591
12.9雲手機的使用594
第13章Android逆向603
13.1jadx的使用603
13.2JEB的使用615
13.3Xposed框架的使用624
13.4基於Xposed的爬取實戰案例635
13.5Frida的使用643
13.6SSL Pining問題的解決方案650
13.7Android脫殼技術簡介與實戰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.1Scrapy框架介紹739
15.2Scrapy入門743
15.3Selector的使用754
15.4Spider的使用759
15.5Downloader Middleware的使用766
15.6Spider Middleware的使用775
15.7Item Pipeline的使用781
15.8Extension的使用792
15.9Scrapy對接Selenium795
15.10Scrapy對接Splash801
15.11Scrapy對接Pyppeteer806
15.12Scrapy規則化爬蟲813
15.13Scrapy實戰827
第16章分佈式爬蟲840
16.1分佈式爬蟲理念840
16.2Scrapy-Redis原理和源碼解析842
16.3基於Scrapy-Redis的分佈式爬蟲實現847
16.4基於Bloom Filter進行大規模去重851
16.5基於RabbitMQ的分佈式爬蟲859
第17章爬蟲的管理和部署862
17.1Scrapyd和ScrapydAPI的使用862
17.2Scrapyd-Client的使用867
17.3Gerapy爬蟲管理框架的使用869
17.4將Scrapy項目打包成Docker鏡像873
17.5Docker Compose的使用878
17.6Kubernetes的使用880
17.7用Kubernetes部署和管理Scrapy爬蟲888
17.8Scrapy分佈式爬蟲的數據統計方案899
17.9基於Prometheus和Grafana的分佈式爬蟲監控方案904
附錄爬蟲與法律917
內容簡介
本書介紹瞭如何利用Python3開發網絡爬蟲。本書為第2版,相比於第1版,為每個知識點的實戰項目配備了針對性的練習平台,避免了案例過期的問題。另外,主要增加了異步爬蟲、JavaScript逆向、App逆向、頁面智能解析、深度學習識別驗證碼、Kubernetes運維及部署等知識點,同時也對各個爬蟲知識點涉及的請求、存儲、解析、測試等工具進行了豐富和更新。本書適合Python程序員閱讀。
Python 3反爬蟲原理與繞過實戰
作 者:韋世東 著 王軍花 編
出 版 社:人民郵電出版社
出版日期:2020年01月01日
頁 數:377
裝 幀:平裝
ISBN:9787115528735
主編推薦
《Python 3 網絡爬蟲開發實戰》作者、微軟小冰工程師崔慶才作序,騰訊、馬蜂窩工程師傾力推薦。 【乾貨滿滿】爬蟲工程師不可錯過的“武功秘籍”,內容包括但不限於Cookie 反爬蟲、WebSocket 反爬蟲、字體反爬蟲、WebDriver 反爬蟲、App 反爬蟲、驗證碼反爬蟲。 【反爬蟲原理+爬蟲實戰】從實戰出發,印證國內互聯網企業內部加密原理,側重講解反爬蟲的原理以及繞過方法。 【21個反爬蟲示例】結合練習平台 Steamboat,幫助讀者隨時復現書中的 21個爬蟲示例,鞏固所學知識。
目錄
●第1章開發環境配置1
1.1操作系統的選擇1
1.1.1Ubuntu簡介1
1.1.2VirtualBox的安裝2
1.1.3安裝Ubuntu3
1.1.4全屏設置8
1.1.5Python設置9
1.2練習平台Steamboat10
1.2.1安裝Docker11
1.2.2安裝Steamboat12
1.2.3Steamboat使用說明14
1.3第三方庫的安裝15
1.3.1Requests15
1.3.2Selenium15
1.3.3瀏覽器驅動16
1.3.4Splash18
1.3.5Puppeteer18
1.3.6PyTesseract20
1.4常用軟件的安裝21
1.4.1nginx21
1.4.2Charles22
1.4.3PC端SSL證書23
1.4.4iOS系統的證書設置26
1.4.5Andriod模擬器的安裝與證書設置27
1.4.6Postman29
1.4.7GoogleChrome32
1.4.8JADX33
1.5深度學習環境配置35
1.5.1NVIDIA顯卡驅動安裝35
1.5.2CUDAToolkit的安裝38
1.5.3cuDNN的安裝40
1.5.4深度學習庫PyTorch41
1.5.5深度學習框架Darknet42
1.5.6圖片標註工具LabelImg43
1.6Node.js環境配置44
1.6.1Node.js的安裝44
1.6.2UglifyJS的安裝45
第2章Web網站的構成和頁面渲染47
2.1nginx服務器47
2.1.1nginx的信號48
2.1.2nginx配置文件49
2.1.3簡單的代理服務50
2.1.4nginx模塊與指令52
2.1.5nginx日誌57
2.1.6小結58
2.2瀏覽器58
2.2.1瀏覽器的主要結構59
2.2.2頁面渲染60
2.2.3HTMLDOM62
2.2.4瀏覽器對象BOM65
2.2.5小結70
2.3網絡協議71
2.3.1認識HTTP71
2.3.2資源與資源標識符72
2.3.3HTTP請求與響應74
2.3.4Cookie77
2.3.5了解HTTPS80
2.3.6認識WebSocket81
2.3.7WebSocket握手81
2.3.8數據傳輸與數據幀83
2.3.9WebSocket連接85
2.3.10連接保持87
2.3.11小結88
本章總結88
第3章爬蟲與反爬蟲89
3.1 *態網頁與網頁源代碼89
3.2爬蟲知識回顧90
3.3反爬蟲的概念與定義95
本章總結96
第4章信息校驗型反爬蟲97
4.1User-Agent反爬蟲97
4.1.1User-Agent反爬蟲繞過實戰97
4.1.2User-Agent反爬蟲的原理與實現100
4.1.3小結103
4.2Cookie反爬蟲103
4.2.1Cookie反爬蟲繞過實戰103
4.2.2Cookie反爬蟲原理與實現109
4.2.3Cookie與JavaScript結合110
4.2.4用戶過濾112
4.2.5小結113
4.3簽名驗證反爬蟲114
4.3.1簽名驗證反爬蟲繞過實戰114
4.3.2簽名驗證反爬蟲原理與實現121
4.3.3有道翻譯反爬蟲案例123
4.3.4小結125
4.4WebSocket握手驗證反爬蟲125
4.5WebSocket消息校驗反爬蟲129
4.5.1WebSocket消息校驗反爬蟲示例130
4.5.2樂魚體育反爬蟲案例132
4.6WebSocketPing反爬蟲133
本章總結134
第5章動態渲染反爬蟲135
5.1常見的動態渲染反爬蟲案例135
5.1.1自動執行的異步請求案例135
5.1.2點擊事件和計算138
5.1.3下拉加載和異步請求142
5.1.4小結144
5.2動態渲染的通用解決辦法144
5.2.1Selenium套件144
5.2.2異步渲染庫Puppeteer148
5.2.3異步渲染服務Splash150
5.2.4通用不一定適用154
5.2.5渲染工具知識擴展156
5.2.6小結160
本章總結160
第6章文本混淆反爬蟲161
6.1圖片偽裝反爬蟲161
6.1.1圖片偽裝反爬蟲繞過實戰161
6.1.2廣西人才網反爬蟲案例164
6.1.3小結165
6.2CSS偏移反爬蟲165
6.2.1CSS偏移反爬蟲繞過實戰166
6.2.2去哪兒網反爬蟲案例172
6.2.3小結174
6.3SVG映射反爬蟲174
6.3.1SVG映射反爬蟲繞過實戰174
6.3.2大眾點評反爬蟲案例177
6.3.3SVG反爬蟲原理179
6.3.4小結186
6.4字體反爬蟲186
6.4.1字體反爬蟲示例186
6.4.2字體文件WOFF189
6.4.3字體反爬蟲繞過實戰196
6.4.4小結198
6.5文本混淆反爬蟲通用解決辦法199
6.5.1光學字符識別OCR199
6.5.2PyTesseract的缺點201
6.5.3文字識別API202
6.5.4小結206
本章總結206
第7章特徵識別反爬蟲207
7.1WebDriver識別207
7.1.1WebDriver識別示例207
7.1.2WebDriver識別原理210
7.1.3WebDriver識別的繞過方法211
7.1.4淘寶網WebDriver案例214
7.1.5小結215
7.2瀏覽器特徵215
7.3爬蟲特徵219
7.3.1訪問頻率繞過實戰219
7.3.2訪問頻率的原理與實現222
7.3.3瀏覽器指紋知識擴展223
7.3.4淘寶網瀏覽器指紋案例227
7.3.5小結228
7.4隱藏鏈接反爬蟲228
7.4.1隱藏鏈接反爬蟲示例228
7.4.2隱藏鏈接反爬蟲原理與實現231
7.4.3小結233
本章總結234
第8章App反爬蟲235
8.1App抓包235
8.1.1HTTP抓包示例235
8.1.2掌上英雄聯盟抓包案例(HTTP)240
8.1.3京東商城抓包案例(HTTPS)243
8.1.4小結246
8.2APK文件反編譯246
8.2.1App簽名驗證反爬蟲示例246
8.2.2APK文件反編譯實戰248
8.2.3小結251
8.3代碼混淆反爬蟲251
8.3.1Android代碼混淆原理252
8.3.2掘金社區App代碼混淆案例255
8.3.3小結257
8.4App應用加固知識擴展257
8.5了解應用程序自動化測試工具260
8.5.1了解Appium260
8.5.2了解AirtestProject260
8.5.3小結262
本章總結262
第9章驗證碼263
9.1字符驗證碼263
9.1.1字符驗證碼示例263
9.1.2實現字符驗證碼266
9.1.3深度學習的概念269
9.1.4卷積神經網絡的概念272
9.1.5使用卷積神經網絡預測驗證碼276
9.1.6小結286
9.2計算型驗證碼286
9.2.1計算型驗證碼示例286
9.2.2實現計算型驗證碼288
9.2.3小結291
9.3滑動驗證碼291
9.3.1滑動驗證碼示例291
9.3.2實現滑動驗證碼295
9.3.3小結298
9.4滑動拼圖驗證碼298
9.4.1滑動拼圖驗證碼示例299
9.4.2實現滑動拼圖驗證碼302
9.4.3難度升級307
9.4.4圖片中的缺口位置識別308
9.4.5小結310
9.5文字點選驗證碼310
9.5.1文字點選驗證碼示例310
9.5.2實現文字點選驗證碼312
9.5.3目標檢測的概念316
9.5.4深度學習實現文字定位317
9.5.5批量檢測與坐標輸出323
9.5.6小結330
9.6鼠標軌蹟的檢測和原理330
9.7驗證碼產品賞析336
9.7.1滑動驗證碼336
9.7.2圖標驗證碼337
9.7.3空間推理驗證碼338
9.7.4小結338
本章總結338
第10章綜合知識339
10.1編碼與加密339
10.1.1ASCII編碼339
10.1.2詳解Base64342
10.1.3基於編碼的反爬蟲設計344
10.1.4MD5消息摘要算法347
10.1.5對稱加密與AES352
10.1.6非對稱加密與RSA357
10.1.7小結360
10.2JavaScript代碼混淆360
10.2.1常見的混淆方法361
10.2.2混淆代碼的還原363
10.2.3混淆原理365
10.2.4實現一個簡單的混淆器366
10.2.5小結369
10.3前端禁止事件369
10.3.1禁止鼠標事件370
10.3.2禁止鍵盤事件371
10.3.3小結372
10.4法律法規372
10.4.1數據安全管理辦法徵求意見稿374
10.4.2爬蟲協議Robots375
10.4.3與爬蟲相關的法律法規376
10.4.4小結377
本章總結377
內容簡介
本書首先介紹了開發環境的配置,接著討論了Web網站的構成和頁面渲染、 *態網頁和靜態網頁對爬蟲造成的影響,緊接著詳細介紹了信息校驗型反爬蟲、動態渲染反爬蟲、文本混淆反爬蟲知識、特徵識別反爬蟲的原理、實現和繞過,然後概覽了App數據爬取的關鍵和常用的反爬蟲手段,最後介紹了常見的編碼和加密原理、JavaScript代碼混淆知識、前端禁止事件以及與爬蟲相關的法律知識和風險點。
作者簡介
韋世東 著 王軍花 編
韋世東,資深爬蟲工程師,2019年華為雲·雲享專家,掘金社區優秀作者,GitChat認證作者,夜幕團隊(NightTeam)成員。擁有七年互聯網從業經驗,擅長反爬蟲的設計和繞過技巧。