Python 網絡爬蟲從入門到精通, 2/e (AI賦能)
明日科技
- 出版商: 清華大學
- 出版日期: 2026-10-01
- 定價: $539
- 售價: $538
- 語言: 簡體中文
- ISBN: 730272864X
- ISBN-13: 9787302728641
-
相關分類:
Web-crawler 網路爬蟲、Python
下單後立即進貨 (約4週~6週)
商品描述
《Python網絡爬蟲從入門到精通(第2版 · AI賦能)》從初學者角度出發,通過通俗易懂的語言、豐富多彩的實例,深度融合 AI 編程,詳細介紹了使用 Python 進行網絡爬蟲開發需要掌握的技術。本書分為 17 章,內容包括初識網絡爬蟲、Web 前端基礎、Python 內置網絡庫的使用、常用第三方網絡庫的使用、高級網絡請求模塊、正則表達式與爬蟲、XPath 解析、使用 BeautifulSoup 解析數據、爬取動態渲染的信息、多線程與多進程爬蟲、爬蟲數據存儲、數據可視化、App 抓包工具、識別驗證碼、Scrapy 爬蟲框架、Scrapy-Redis分布式爬蟲,以及高清壁紙智能采集系統項目開發。書中所有知識都結合具體實例進行介紹,涉及的程序代碼給出了詳細的註釋,讀者可輕松領會網絡爬蟲程序開發的精髓,快速提高開發技能。
作者簡介
明日科技是一家專業從事軟件開發、教育培訓及軟件開發教育資源整合的高科技公司。其編寫的教材註重選取軟件開發中必需、常用內容,兼顧易學性與知識拓展性,深受讀者喜愛;多次榮獲 "全行業****品種"" 全國高校出版社****書 " 等獎項,多個品種長期位居同類圖書銷售排行榜前列。
目錄大綱
目錄
第1篇 基礎知識
第1章 初識網絡爬蟲 2
1.1 網絡爬蟲基礎 2
1.1.1 概述 2
1.1.2 網絡爬蟲的分類 2
1.1.3 網絡爬蟲的基本原理 3
1.1.4 網絡爬蟲法律與倫理道德 3
1.2 搭建網絡爬蟲開發環境 4
1.2.1 安裝 Anaconda 4
1.2.2 PyCharm 的下載與安裝 7
1.2.3 配置 PyCharm 9
1.2.4 測試 PyCharm 10
1.2.5 在 PyCharm 中集成 AI 工具 11
1.3 實踐與練習 13
第2章 Web 前端基礎 14
2.1 HTTP 基本原理 14
2.1.1 HTTP 14
2.1.2 HTTP 與 Web 服務器 14
2.1.3 瀏覽器中的請求和響應 15
2.1.4 AI 輔助 HTTP 請求與響應分析 16
2.2 HTML 17
2.2.1 什麼是 HTML 17
2.2.2 標簽、元素、結構概述 17
2.2.3 HTML 的基本標簽 19
2.3 CSS 20
2.3.1 CSS 概述 20
2.3.2 屬性選擇器 20
2.3.3 類和 ID 選擇器 21
2.4 JavaScript 動態腳本語言 21
2.4.1 JavaScript 概述 22
2.4.2 JavaScript 嵌入與交互 22
2.4.3 AI 輔助 JavaScript 開發與調試 24
2.5 Web 瀏覽器的使用 25
2.5.1 瀏覽器開發人員工具結構 25
2.5.2 元素檢查與修改 26
2.5.3 網絡請求分析 28
2.5.4 設備模擬與調試 29
2.5.5 JS 調試臺使用 30
2.6 實踐與練習 32
第3章 Python 內置網絡庫的使用 33
3.1 urllib 簡介 33
3.1.1 urllib 模塊組成 33
3.1.2 AI 輔助 urllib 快速入門 33
3.2 使用 urlopen()方法發送請求 34
3.2.1 發送 GET 請求 34
3.2.2 發送 POST 請求 35
3.2.3 設置網絡超時 36
3.2.4 借助 AI 調試失敗請求 36
3.3 復雜的網絡請求 37
3.3.1 設置請求頭 38
3.3.2 Cookie 的獲取與設置 39
3.3.3 設置代理 IP 44
3.4 異常處理 44
3.4.1 urllib 異常類核心功能 44
3.4.2 借助 AI 定位與修復異常 46
3.5 解析鏈接 47
3.5.1 拆分 URL 47
3.5.2 組合 URL 48
3.5.3 連接 URL 49
3.5.4 URL 的編碼與解碼 50
3.5.5 URL 參數的轉換 51
3.6 實踐與練習 52
第4章 常用第三方網絡庫的使用 53
4.1 urllib3 庫的使用 53
4.1.1 基本請求發送 53
4.1.2 復雜請求發送 56
4.1.3 上傳文件 58
4.2 requests 庫的使用 59
4.2.1 基本網絡請求 60
4.2.2 復雜網絡請求 63
4.2.3 代理服務 67
4.2.4 AI 輔助 requests 高效開發 70
4.3 httpx 庫的使用 72
4.3.1 同步請求 72
4.3.2 異步請求 74
4.3.3 代理配置 75
4.3.4 使用 AI 生成 httpx 異步代碼 77
4.4 實踐與練習 77
第5章 高級網絡請求模塊 79
5.1 Requests-Cache 模塊 79
5.1.1 安裝與測試 79
5.1.2 緩存應用 79
5.2 Requests-HTML 模塊 82
5.2.1 發送網絡請求 82
5.2.2 數據的提取 83
5.2.3 實戰應用:獲取電影信息 86
5.2.4 利用 AI 開發選擇器生成實例 88
5.3 實踐與練習 90
第2篇 核心技術
第6章 正則表達式與爬蟲 92
6.1 正則表達式基礎 92
6.1.1 正則表達式核心語法 92
6.1.2 AI 輔助生成正則表達式 95
6.1.3 在 Python 中使用正則表達式語法 95
6.2 使用 match()匹配爬取內容 95
6.2.1 匹配字符串是否以指定字符串開頭 96
6.2.2 匹配以任意字符開頭的字符串 97
6.2.3 匹配多個字符串 97
6.2.4 獲取部分內容 98
6.2.5 匹配指定首尾的字符串 98
6.3 使用 search()匹配爬取內容 98
6.3.1 獲取第一匹配值 99
6.3.2 可選匹配 99
6.3.3 匹配字符串邊界 100
6.4 使用 findall()匹配爬取內容 100
6.4.1 匹配所有指定字符開頭的字符串 100
6.4.2 貪婪匹配 101
6.4.3 非貪婪匹配 101
6.5 數據爬取中的字符串處理 102
6.5.1 替換字符串 102
6.5.2 分割字符串 104
6.6 案例:爬取視頻 104
6.6.1 查找視頻頁面 104
6.6.2 分析視頻地址 105
6.6.3 實現視頻下載 106
6.6.4 AI 優化案例 106
6.7 實踐與練習 107
第7章 XPath 解析 108
7.1 XPath 概述 108
7.2 XPath 的解析操作 108
7.2.1 解析 HTML 109
7.2.2 獲取所有節點 110
7.2.3 獲取子節點 112
7.2.4 獲取父節點 113
7.2.5 獲取文本 114
7.2.6 屬性匹配 114
7.2.7 獲取屬性 116
7.2.8 按序獲取 117
7.2.9 節點軸獲取 118
7.3 案例:爬取豆瓣電影 Top 250 119
7.3.1 分析請求地址 119
7.3.2 分析信息位置 120
7.3.3 爬蟲代碼的實現 121
7.3.4 AI 輔助 XPath 優化與反爬處理 122
7.4 實踐與練習 123
第8章 使用 BeautifulSoup 解析數據 125
8.1 BeautifulSoup 基礎 125
8.2 獲取節點內容 127
8.2.1 獲取節點對應的代碼 127
8.2.2 獲取節點屬性 128
8.2.3 獲取節點包含的文本內容 129
8.2.4 嵌套獲取節點內容 129
8.2.5 關聯獲取 130
8.2.6 AI 輔助復雜節點關聯獲取 134
8.3 獲取內容 135
8.3.1 find_all()獲取所有符合條件的內容 135
8.3.2 find()獲取第一個匹配的節點內容 138
8.3.3 其他方法 138
8.4 CSS 選擇器的使用 139
8.5 BeautifulSoup 與 XPath 的使用場景 141
8.6 實踐與練習 141
第9章 爬取動態渲染的信息 143
9.1 Ajax 數據的爬取 143
9.1.1 分析網絡請求 143
9.1.2 模擬請求 144
9.1.3 處理響應內容 145
9.2 使用 Selenium 爬取動態加載的信息 147
9.2.1 安裝 Selenium 模塊 147
9.2.2 下載瀏覽器驅動 148
9.2.3 Selenium 模塊的使用 148
9.2.4 Selenium 模塊的常用方法 153
9.2.5 AI 輔助 Selenium 元素定位與調試 154
9.3 Playwright 的使用 154
9.3.1 安裝 Playwright 模塊 155
9.3.2 Playwright 的基本使用 155
9.3.3 多窗口或選項卡處理 156
9.3.4 移動端仿真測試 157
9.3.5 常用操作方法 157
9.4 JavaScript 逆向基礎 160
9.4.1 Python 模擬執行 JavaScript 160
9.4.2 瀏覽器中 JavaScript 的模擬執行 160
9.4.3 AST 技術應用 161
9.4.4 WebAssembly 動態調試 162
9.4.5 JavaScript 逆向技巧總結 163
9.4.6 AI 處理混淆的 JS 代碼 163
9.5 實踐與練習 164
第10章 多線程與多進程爬蟲 165
10.1 線程 165
10.1.1 創建線程 165
10.1.2 線程間通信 167
10.1.3 互斥鎖 168
10.1.4 使用隊列在線程間通信 170
10.1.5 多線程在爬蟲中的應用 171
10.2 進程 174
10.2.1 創建進程的常用方式 174
10.2.2 進程間通信 180
10.2.3 隊列簡介 181
10.2.4 多進程隊列的使用 182
10.2.5 使用隊列在進程間通信 183
10.2.6 多進程在爬蟲中的應用 184
10.3 AI 對比線程與進程 189
10.4 實踐與練習 189
第11章 爬蟲數據存儲 191
11.1 文件的存儲 191
11.1.1 存儲 TXT 文本文件 191
11.1.2 存儲 JSON 文件(AI 優化) 193
11.1.3 存儲 CSV 文件 196
11.1.4 存儲 Excel 文件 197
11.2 SQLite 數據庫 198
11.2.1 創建數據庫文件 198
11.2.2 操作 SQLite 199
11.3 MySQL 數據庫 200
11.3.1 下載與安裝 MySQL 200
11.3.2 安裝 PyMySQL 201
11.3.3 連接數據庫 201
11.3.4 創建數據表 202
11.3.5 操作 MySQL 數據表 203
11.3.6 借助 AI 排查 MySQL 連接錯誤 204
11.4 實踐與練習 205
第3篇 高級應用
第12章 數據可視化 208
12.1 Matplotlib 概述 208
12.1.1 Matplotlib 簡介 208
12.1.2 安裝並使用 Matplotlib 210
12.2 Matplotlib 圖表的常用設置 210
12.2.1 基本繪圖 plot()函數 210
12.2.2 設置畫布 213
12.2.3 設置坐標軸 214
12.2.4 添加文本標簽 217
12.2.5 設置標題和圖例 218
12.2.6 添加註釋 220
12.3 利用圖表分析爬取的數據 221
12.3.1 折線圖分析期中考試成績 221
12.3.2 柱形圖分析圖書銷售數據 222
12.3.3 餅形圖分析各省銷售占比情況 224
12.3.4 AI 輔助圖表選型 229
12.4 Pyecharts 圖表應用 230
12.4.1 Pyecharts 圖表組成 230
12.4.2 Pyecharts 圖表分析對比手機數據 231
12.5 案例:可視化二手房數據查詢系統 233
12.6 實踐與練習 240
第13章 App 抓包工具 241
13.1 Charles 工具的下載與安裝 241
13.2 SSL 證書的安裝 243
13.2.1 安裝計算機端證書 243
13.2.2 設置代理 246
13.2.3 配置網絡 247
13.2.4 安裝手機端證書 249
13.3 實踐與練習 251
第14章 識別驗證碼 252
14.1 字符驗證碼 252
14.1.1 搭建 OCR 環境 252
14.1.2 下載字符驗證碼圖片 254
14.1.3 識別字符驗證碼 255
14.2 第三方驗證碼識別 257
14.3 滑動拼圖驗證碼 260
14.3.1 Python 結合 Selenium 破解滑動拼圖驗證碼 260
14.3.2 Playwright 動作鏈破解滑動拼圖驗證碼 262
14.3.3 借助 AI 生成逼真滑動軌跡 266
14.4 實踐與練習 267
第15章 Scrapy 爬蟲框架 268
15.1 Scrapy 爬蟲框架基礎 268
15.2 搭建 Scrapy 爬蟲框架 269
15.2.1 使用 Anaconda 安裝 Scrapy 269
15.2.2 在 Windows 系統中配置Scrapy 270
15.3 Scrapy 的基本應用 271
15.3.1 創建 Scrapy 項目 271
15.3.2 創建爬蟲 272
15.3.3 獲取數據 274
15.3.4 將爬取的數據保存為多種格式的文件 276
15.3.5 AI 輔助生成爬蟲代碼 277
15.4 編寫 Item Pipeline 278
15.4.1 項目管道的核心方法 278
15.4.2 將信息存儲至數據庫 278
15.5 自定義中間件 283
15.5.1 設置隨機請求頭 283
15.5.2 設置 Cookies 286
15.5.3 設置代理 IP 288
15.5.4 借助 AI 生成智能代理中間件 290
15.6 文件下載 291
15.7 實踐與練習 293
第16章 Scrapy-Redis 分布式爬蟲 295
16.1 Redis 數據庫基礎 295
16.1.1 安裝 Redis 數據庫 295
16.1.2 Redis Insight 可視化管理工具 296
16.1.3 Python 操作 Redis 數據庫 296
16.2 Scrapy-Redis 模塊 298
16.3 分布式爬取新聞數據 299
16.3.1 分析請求地址 300
16.3.2 創建隨機請求頭 300
16.3.3 創建數據對象 301
16.3.4 將爬取的數據寫入 MySQL數據庫 301
16.3.5 數據的爬取與爬蟲項目啟動 302
16.3.6 編寫配置文件 304
16.3.7 啟動分布式爬蟲項目 304
16.4 分布式爬蟲的部署 308
16.4.1 分布式爬蟲架構 308
16.4.2 部署分布式爬蟲 309
16.4.3 AI 輔助生成部署腳本 312
16.4.4 實戰應用:分布式爬取詩詞 314
16.5 實踐與練習 322
第4篇 項目實戰
第17章 高清壁紙智能采集系統 324
17.1 需求分析 324
17.2 系統設計 324
17.2.1 系統功能結構 324
17.2.2 系統業務流程 325
17.2.3 系統預覽 325
17.3 系統開發準備 325
17.4 主窗體的 UI 設計 326
17.4.1 主窗體的布局 326
17.4.2 主窗體顯示效果 327
17.5 系統實現 328
17.5.1 模塊導入 328
17.5.2 多線程爬取並保存高清壁紙 329
17.5.3 在 PyQt5 窗體中調用爬蟲方法 332
17.5.4 使用列表顯示爬取的所有高清壁紙名稱 333
17.5.5 在 PyQt5 窗體中查看爬取的高清壁紙 335
17.6 AI 輔助優化項目 336
17.6.1 AI 智能校驗圖片鏈接有效性 336
17.6.2 AI 圖片內容分類與去重 337
17.6.3 AI 解決 UI 卡頓問題 340
17.7 項目運行 341
17.8 項目總結 342



