Python 3反爬蟲原理與繞過實戰

Python 3反爬蟲原理與繞過實戰

《Python 3反爬蟲原理與繞過實戰》是2020年2月人民郵電出版社出版的圖書,作者是韋世東。

基本介紹

  • 書名:Python 3反爬蟲原理與繞過實戰
  • 作者:韋世東
  • ISBN:9787115528735
  • 頁數:377頁
  • 定價:89元
  • 出版社:人民郵電出版社
  • 出版時間:2020年2月
  • 裝幀:平裝
  • 開本:16開
內容簡介,圖書目錄,

內容簡介

本書首先介紹了開發環境的配置,接著討論了Web網站的構成和頁面渲染、動煮船虹殼態網頁和靜態網頁對爬蟲造成的影響,緊接著詳細介紹了信息校驗型反爬蟲、動態渲染反爬蟲、文本混淆反爬蟲知識、特徵識別反爬蟲的原理、實現和繞過,然後概覽了App數據爬取的關鍵和常用的反爬蟲手段,最後介紹了常見的編碼和加密原理、JavaScript代碼混淆知識、前端禁止事件以及與爬蟲相關的法律知識和風險點。

圖書目錄

第 1章 開發環境配置 1
1.1 作業系統的兵去拒選擇 1
1.1.1 Ubuntu 簡介 1
1.1.2 VirtualBox 的安裝 2
1.1.3 安裝 Ubuntu 3
1.1.4 全螢幕設定 8
1.1.5 Python 設定 9
1.2 練習平台 Steamboat 10
1.2.1 安裝 Docker 11
1.2.2 安裝 Steamboat 12
1.2.3 Steamboat 使用說明 14
1.3 第三方庫的安裝 15
1.3.1 Requests 15
1.3.2 Selenium 15
1.3.3 瀏覽器驅動 16
1.3.4 Splash 18
1.3.5 Puppeteer 18
1.3.6 PyTesseract 20
1.4 常用軟體的安裝 21
1.4.1 nginx 21
1.4.2 Charles 22
1.4.3 PC端 SSL 證書 23
1.4.4 iOS 系統的證書設定 26
1.4.5 Andriod 模擬器的安裝與鴉詢肯凳證書設定 27
1.4.6 Postman 29
1.4.7 Google Chrome 32
1.4.8 JADX 33
1.5 深度學習祝精章環境配置 35
1.5.1 NVIDIA顯示卡驅動安裝 35
1.5.2 CUDA Toolkit 的安裝 38
1.5.3 cuDNN 的安裝 40
1.5.4 深度學習庫 PyTorch 41
1.5.5 深度學習框架 Darknet 42
1.5.6 圖片標註工具 LabelImg 43
1.6 Node.js 環境配置 44
1.6.1 Node.js 的安裝 44
1.6.2 UglifyJS 的安裝 45
第 2章 Web網站的構晚酷鴉成和頁面渲染 47
2.1 nginx伺服器 47
2.1.1 nginx的信號 48
2.1.2 nginx配置檔案 49
2.1.3 簡單的代理服務 50
2.1.4 nginx模組與指令 52
2.1.5 nginx日誌 57
2.1.6 小結 58
2.2 瀏覽器 58
2.2.1 瀏覽器的主要結構 59
2.2.2 頁面渲染 60
2.2.3 HTML DOM 62
2.2.4 瀏覽器對象BOM 65
2.2.5 小結 70
2.3 網路協定 71
2.3.1 認識HTTP 71
2.3.2 資源與資源標識符 72
2.3.3 HTTP請求與回響 74
2.3.4 Cookie 77
2.3.5 了解HTTPS 80
2.3.6 認識WebSocket 81
2.3.7 WebSocket握手 81
2.3.8 數據傳鑽臘迎輸與數據幀 83
2.3.9 WebSocket連線 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.1 User-Agent 反爬蟲 97
4.1.1 User-Agent 反爬蟲繞過實戰 97
4.1.2 User-Agent 反爬蟲的原理與實現 100
4.1.3 小結 103
4.2 Cookie 反爬蟲 103
4.2.1 Cookie 反爬蟲繞過實戰 103
4.2.2 Cookie 反爬蟲原理與實現 109
4.2.3 Cookie 與 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.4 WebSocket 握手驗證反爬蟲 125
4.5 WebSocket 訊息校驗反爬蟲 129
4.5.1 WebSocket 訊息校驗反爬蟲示例 130
4.5.2 樂魚體育反爬蟲案例 132
4.6 WebSocket Ping反爬蟲 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.1 Selenium 套件 144
5.2.2 異步渲染庫 Puppeteer 148
5.2.3 異步渲染服務 Splash 150
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.2 CSS 偏移反爬蟲 165
6.2.1 CSS 偏移反爬蟲繞過實戰 166
6.2.2 去哪兒網反爬蟲案例 172
6.2.3 小結 174
6.3 SVG 映射反爬蟲 174
6.3.1 SVG 映射反爬蟲繞過實戰 174
6.3.2 大眾點評反爬蟲案例 177
6.3.3 SVG 反爬蟲原理 179
6.3.4 小結 186
6.4 字型反爬蟲 186
6.4.1 字型反爬蟲示例 186
6.4.2 字型檔 WOFF 189
6.4.3 字型反爬蟲繞過實戰 196
6.4.4 小結 198
6.5 文本混淆反爬蟲通用解決辦法 199
6.5.1 光學字元識別 OCR 199
6.5.2 PyTesseract 的缺點 201
6.5.3 文字識別 API 202
6.5.4 小結 206
本章總結 206
第7章 特徵識別反爬蟲 207
7.1 WebDriver 識別 207
7.1.1 WebDriver 識別示例 207
7.1.2 WebDriver 識別原理 210
7.1.3 WebDriver 識別的繞過方法 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.1 App 抓包 235
8.1.1 HTTP 抓包示例 235
8.1.2 掌上英雄聯盟抓包案例(HTTP) 240
8.1.3 京東商城抓包案例(HTTPS) 243
8.1.4 小結 246
8.2 APK檔案反編譯 246
8.2.1 App 簽名驗證反爬蟲示例 246
8.2.2 APK檔案反編譯實戰 248
8.2.3 小結 251
8.3 代碼混淆反爬蟲 251
8.3.1 Android 代碼混淆原理 252
8.3.2 掘金社區 App 代碼混淆案例 255
8.3.3 小結 257
8.4 App 套用加固知識擴展 257
8.5 了解應用程式自動化測試工具 260
8.5.1 了解 Appium 260
8.5.2 了解 Airtest Project 260
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.1 ASCII 編碼 339
10.1.2 詳解 Base64 342
10.1.3 基於編碼的反爬蟲設計 344
10.1.4  MD5訊息摘要算法 347
10.1.5 對稱加密與 AES 352
10.1.6 非對稱加密與 RSA 357
10.1.7 小結 360
10.2 JavaScript 代碼混淆 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 爬蟲協定 Robots 375
10.4.3 與爬蟲相關的法律法規 376
10.4.4 小結 377
本章總結 377
2.2 瀏覽器 58
2.2.1 瀏覽器的主要結構 59
2.2.2 頁面渲染 60
2.2.3 HTML DOM 62
2.2.4 瀏覽器對象BOM 65
2.2.5 小結 70
2.3 網路協定 71
2.3.1 認識HTTP 71
2.3.2 資源與資源標識符 72
2.3.3 HTTP請求與回響 74
2.3.4 Cookie 77
2.3.5 了解HTTPS 80
2.3.6 認識WebSocket 81
2.3.7 WebSocket握手 81
2.3.8 數據傳輸與數據幀 83
2.3.9 WebSocket連線 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.1 User-Agent 反爬蟲 97
4.1.1 User-Agent 反爬蟲繞過實戰 97
4.1.2 User-Agent 反爬蟲的原理與實現 100
4.1.3 小結 103
4.2 Cookie 反爬蟲 103
4.2.1 Cookie 反爬蟲繞過實戰 103
4.2.2 Cookie 反爬蟲原理與實現 109
4.2.3 Cookie 與 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.4 WebSocket 握手驗證反爬蟲 125
4.5 WebSocket 訊息校驗反爬蟲 129
4.5.1 WebSocket 訊息校驗反爬蟲示例 130
4.5.2 樂魚體育反爬蟲案例 132
4.6 WebSocket Ping反爬蟲 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.1 Selenium 套件 144
5.2.2 異步渲染庫 Puppeteer 148
5.2.3 異步渲染服務 Splash 150
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.2 CSS 偏移反爬蟲 165
6.2.1 CSS 偏移反爬蟲繞過實戰 166
6.2.2 去哪兒網反爬蟲案例 172
6.2.3 小結 174
6.3 SVG 映射反爬蟲 174
6.3.1 SVG 映射反爬蟲繞過實戰 174
6.3.2 大眾點評反爬蟲案例 177
6.3.3 SVG 反爬蟲原理 179
6.3.4 小結 186
6.4 字型反爬蟲 186
6.4.1 字型反爬蟲示例 186
6.4.2 字型檔 WOFF 189
6.4.3 字型反爬蟲繞過實戰 196
6.4.4 小結 198
6.5 文本混淆反爬蟲通用解決辦法 199
6.5.1 光學字元識別 OCR 199
6.5.2 PyTesseract 的缺點 201
6.5.3 文字識別 API 202
6.5.4 小結 206
本章總結 206
第7章 特徵識別反爬蟲 207
7.1 WebDriver 識別 207
7.1.1 WebDriver 識別示例 207
7.1.2 WebDriver 識別原理 210
7.1.3 WebDriver 識別的繞過方法 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.1 App 抓包 235
8.1.1 HTTP 抓包示例 235
8.1.2 掌上英雄聯盟抓包案例(HTTP) 240
8.1.3 京東商城抓包案例(HTTPS) 243
8.1.4 小結 246
8.2 APK檔案反編譯 246
8.2.1 App 簽名驗證反爬蟲示例 246
8.2.2 APK檔案反編譯實戰 248
8.2.3 小結 251
8.3 代碼混淆反爬蟲 251
8.3.1 Android 代碼混淆原理 252
8.3.2 掘金社區 App 代碼混淆案例 255
8.3.3 小結 257
8.4 App 套用加固知識擴展 257
8.5 了解應用程式自動化測試工具 260
8.5.1 了解 Appium 260
8.5.2 了解 Airtest Project 260
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.1 ASCII 編碼 339
10.1.2 詳解 Base64 342
10.1.3 基於編碼的反爬蟲設計 344
10.1.4  MD5訊息摘要算法 347
10.1.5 對稱加密與 AES 352
10.1.6 非對稱加密與 RSA 357
10.1.7 小結 360
10.2 JavaScript 代碼混淆 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 爬蟲協定 Robots 375
10.4.3 與爬蟲相關的法律法規 376
10.4.4 小結 377
本章總結 377

相關詞條

熱門詞條

聯絡我們