Python爬蟲項目教程 (第2版)(微課版)
黃銳軍
- 出版商: 人民郵電
- 出版日期: 2025-09-01
- 售價: $359
- 語言: 簡體中文
- 頁數: 240
- ISBN: 7115676216
- ISBN-13: 9787115676214
-
相關分類:
Web-crawler 網路爬蟲
下單後立即進貨 (約4週~6週)
相關主題
商品描述
本書基於Python語言介紹爬蟲的基礎知識。本書包括6個項目,分別為爬取外匯網站數據、爬取名言網站數據、爬取天氣網站數據、爬取旅遊網站數據、爬取圖書網站數據、爬取商城網站數據,通過這些項目講解Python的Web訪問技術、BeautifulSoup的數據分析與提取技術、xpath的數據分析與提取技術、深度優先與廣度優先順序爬取技術、多線程網頁爬取技術、scrapy分布式爬取框架技術、selenium爬蟲程序技術等。本書每個項目的編寫均遵循由淺入深的學習規律,采取理論與實踐相結合的方式來引導讀者完成實戰項目。
本書可作為計算機應用技術及其相關專業程序設計課程的教材。
作者簡介
黃銳軍,深圳信息職業技術大學教授,從事職業教育34年,一直工作在教學第一線。主持完成2門國家精品(Python程序設計、Python網絡爬蟲程序技術)。主編出版教材9本,其中3本獲評國家十一五、十三五、十四五規劃教材。教材發行量達30余萬冊,被全國500多所院校選為教材。
目錄大綱
項目1 爬取外匯網站數據 1
1.1 外匯網站項目任務 1
1.2 搭建爬蟲程序開發環境 2
1.2.1 認識爬蟲程序 2
1.2.2 搭建爬蟲程序開發環境 3
1.3 使用Flask創建Web網站 4
1.3.1 安裝Flask 4
1.3.2 創建模擬外匯網站 4
1.3.3 獲取網站HTML代碼 6
1.4 Flask網頁模板設計 7
1.4.1 Flask網頁模板 7
1.4.2 使用Flask模板語句 8
1.5 使用GET方法與POST方法訪問網頁 12
1.5.1 客戶端使用GET方法傳遞數據 12
1.5.2 客戶端使用POST方法傳遞數據 13
1.5.3 服務器獲取客戶端傳遞的數據 13
1.6 使用正則表達式匹配數據 14
1.6.1 使用正則表達式匹配字符串 14
1.6.2 使用正則表達式爬取數據 18
1.7 綜合項目 爬取模擬外匯網站數據 19
1.7.1 創建模擬外匯網站 19
1.7.2 解析網站HTML代碼 19
1.7.3 設計存儲數據庫 20
1.7.4 編寫爬蟲程序 20
1.7.5 運行爬蟲程序 22
1.8 實戰項目 爬取實際外匯網站數據 23
1.8.1 解析網頁HTML代碼 23
1.8.2 爬取外匯網站數據 24
1.8.3 設計存儲數據庫 26
1.8.4 編寫爬蟲程序 26
1.8.5 執行爬蟲程序 28
項目總結 29
練習1 29
項目2 爬取名言網站數據 30
2.1 名言網站項目任務 30
2.2 使用BeautifulSoup裝載HTML文檔 31
2.2.1 創建模擬名言網站 31
2.2.2 安裝BeautifulSoup庫 32
2.2.3 裝載HTML文檔 33
2.3 使用BeautifulSoup查找HTML元素 36
2.3.1 使用find()函數查找 36
2.3.2 查找元素屬性與文本 39
2.3.3 使用find_all()函數查找 40
2.3.4 使用高級查找 42
2.4 使用BeautifulSoup遍歷文檔元素 43
2.4.1 獲取元素節點的父節點 44
2.4.2 獲取元素節點的直接子節點 44
2.4.3 獲取元素節點的所有子孫節點 46
2.4.4 獲取元素節點的兄弟節點 46
2.5 BeautifulSoup使用CSS語法查找 48
2.5.1 使用CSS語法查找 48
2.5.2 使用CSS屬性語法規則查找 50
2.5.3 使用select()查找子孫節點 50
2.5.4 使用select()查找直接子節點 51
2.5.5 使用select()查找兄弟節點 51
2.5.6 使用select_one()函數查找單一元素 52
2.6 綜合項目 爬取模擬名言網站數據 53
2.6.1 創建模擬名言網站 53
2.6.2 爬取名言數據 54
2.6.3 設計存儲數據庫 55
2.6.4 編寫爬蟲程序 55
2.6.5 執行爬蟲程序 57
2.7 實戰項目 爬取實際名言網站數據 58
2.7.1 解析網站HTML代碼 58
2.7.2 爬取全部頁面的數據 59
2.7.3 編寫爬蟲程序 60
2.7.4 執行爬蟲程序 62
項目總結 63
練習2 63
項目3 爬取天氣網站數據 66
3.1 天氣網站項目任務 66
3.2 使用lxml裝載HTML文檔 67
3.2.1 創建模擬網站 67
3.2.2 裝載HTML文檔 68
3.3 使用xpath查找HTML元素 71
3.3.1 lxml元素類型 71
3.3.2 使用xpath查找元素的規則 72
3.3.3 xpath與特殊元素 81
3.4 綜合項目 爬取模擬天氣網站數據 82
3.4.1 創建模擬天氣網站 82
3.4.2 爬取天氣數據 85
3.4.3 設計存儲數據庫 86
3.4.4 編寫爬蟲程序 86
3.4.5 執行爬蟲程序 88
3.5 實戰項目 爬取實際天氣網站數據 89
3.5.1 解析網站HTML代碼 89
3.5.2 編寫爬蟲程序 92
3.5.3 執行爬蟲程序 95
項目總結 97
練習3 97
項目4 爬取旅遊網站數據 98
4.1 旅遊網站項目任務 98
4.2 網站樹的爬取路徑 99
4.2.1 Web服務器網站 100
4.2.2 使用遞歸程序爬取數據 101
4.2.3 深度優先爬取數據 102
4.2.4 廣度優先爬取數據 104
4.3 爬取多頁面網站數據 105
4.3.1 建立旅遊網站服務器 105
4.3.2 爬取網站數據 108
4.3.3 編寫爬蟲程序 108
4.4 Python實現多線程 110
4.4.1 Python的Daemon線程 110
4.4.2 線程的等待 111
4.4.3 多線程與資源 112
4.5 爬取旅遊網站圖像 114
4.5.1 重新設計旅遊網站 114
4.5.2 單線程爬取圖像 116
4.5.3 多線程爬取圖像 118
4.6 綜合項目 爬取模擬旅遊網站數據 120
4.6.1 旅遊數據存儲 120
4.6.2 編寫爬蟲程序 121
4.6.3 執行爬蟲程序 123
4.7 實戰項目 爬取實際旅遊網站數據 125
4.7.1 網站網頁分析 125
4.7.2 網站數據爬取 126
4.7.3 網站數據存儲 127
4.7.4 編寫爬蟲程序 128
4.7.5 執行爬蟲程序 132
項目總結 132
練習4 133
項目5 爬取圖書網站數據 134
5.1 圖書網站項目任務 134
5.2 使用scrapy創建爬蟲程序 136
5.2.1 創建網站服務器 136
5.2.2 安裝scrapy框架 136
5.2.3 創建scrapy項目 136
5.2.4 程序入口位置 138
5.2.5 Python的yield語句 139
5.3 scrapy結合BeautifulSoup爬取數據 140
5.3.1 創建模擬圖書網站 140
5.3.2 解析網站HTML代碼 141
5.3.3 爬取圖書圖像 142
5.3.4 編寫爬蟲程序 143
5.3.5 執行爬蟲程序 144
5.4 scrapy通過xpath查找元素 144
5.4.1 scrapy的xpath簡介 144
5.4.2 使用xpath查找HTML元素 146
5.4.3 使用xpath與BeautifulSoup 150
5.5 scrapy爬取關聯網頁數據 150
5.5.1 創建模擬圖書網站 150
5.5.2 程序爬取網頁的順序 152
5.5.3 理解scrapy的分布式特性 155
5.6 scrapy通過xpath爬取數據 155
5.6.1 創建模擬圖書網站 155
5.6.2 解析網站HTML代碼 157
5.6.3 爬取圖書圖像 158
5.6.4 設計數據庫存儲 159
5.6.5 編寫爬蟲程序 159
5.6.6 執行爬蟲程序 161
5.7 scrapy通過管道存儲數據 161
5.7.1 創建模擬圖書網站 161
5.7.2 編寫數據字段類 164
5.7.3 編寫爬蟲程序類 164
5.7.4 編寫數據管道類 166
5.7.5 設置scrapy的配置文件 167
5.7.6 執行爬蟲程序 168
5.8 綜合項目 爬取模擬圖書網站數據 168
5.8.1 創建模擬圖書網站 169
5.8.2 編寫數據字段類 171
5.8.3 編寫數據管道類 171
5.8.4 編寫爬蟲程序類 173
5.8.5 設置scrapy的配置文件 175
5.8.6 執行爬蟲程序 175
5.9 實戰項目 爬取實際圖書網站數據 175
5.9.1 解析網站HTML代碼 175
5.9.2 爬取網站圖書數據 178
5.9.3 實現自動翻頁 179
5.9.4 編寫爬蟲程序 181
5.9.5 執行爬蟲程序 184
項目總結 185
練習5 185
項目6 爬取商城網站數據 187
6.1 商城網站項目任務 187
6.2 使用selenium編寫爬蟲程序 189
6.2.1 JavaScript程序控制網頁 189
6.2.2 普通爬蟲程序的問題 190
6.2.3 安裝selenium框架與Chrome驅動程序 191
6.2.4 編寫selenium爬蟲程序 192
6.3 使用selenium查找HTML元素 193
6.3.1 創建模擬商城網站 193
6.3.2 使用xpath查找元素 195
6.3.3 查找元素的文本與屬性 195
6.3.4 使用id值查找元素 197
6.3.5 使用name屬性值查找元素 197
6.3.6 使用CSS查找元素 197
6.3.7 使用tagName查找元素 198
6.3.8 使用文本查找超鏈接 198
6.3.9 使用class值查找元素 199
6.4 使用selenium實現用戶登錄 200
6.4.1 創建用戶登錄網站 200
6.4.2 使用元素動作 201
6.4.3 編寫爬蟲程序 202
6.4.4 執行JavaScript程序 203
6.5 使用selenium爬取AJAX網頁數據 205
6.5.1 創建AJAX網站 205
6.5.2 理解selenium爬蟲程序 207
6.5.3 編寫爬蟲程序 210
6.5.4 執行爬蟲程序 211
6.6 使用selenium等待HTML元素 211
6.6.1 創建延遲模擬網站 211
6.6.2 編寫爬蟲程序 213
6.6.3 selenium強制等待 213
6.6.4 selenium隱式等待 214
6.6.5 selenium循環與顯式等待 214
6.6.6 selenium顯式等待形式 216
6.7 綜合項目 爬取模擬商城網站數據 217
6.7.1 創建模擬商城網站 217
6.7.2 爬取網站數據 221
6.7.3 設計數據存儲 222
6.7.4 編寫爬蟲程序 222
6.7.5 執行爬蟲程序 226
6.8 實戰項目 爬取實際商城網站數據 226
6.8.1 解析網頁HTML代碼 226
6.8.2 爬取網頁數據 230
6.8.3 實現網頁翻頁 231
6.8.4 編寫爬蟲程序 233
6.8.5 執行爬蟲程序 237
項目總結 239
練習6 239