Python 網絡爬蟲從入門到精通, 2/e (AI賦能)

明日科技

  • 出版商: 清華大學
  • 出版日期: 2026-10-01
  • 定價: $539
  • 售價: $538
  • 語言: 簡體中文
  • ISBN: 730272864X
  • ISBN-13: 9787302728641
  • 相關分類: Web-crawler 網路爬蟲、Python
  • 下單後立即進貨 (約4週~6週)

  • Python 網絡爬蟲從入門到精通, 2/e (AI賦能)-preview-1
  • Python 網絡爬蟲從入門到精通, 2/e (AI賦能)-preview-2
  • Python 網絡爬蟲從入門到精通, 2/e (AI賦能)-preview-3
Python 網絡爬蟲從入門到精通, 2/e (AI賦能)-preview-1

商品描述

《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

 

最後瀏覽商品 (20)