Python爬蟲項目教程(微課版)

黃銳軍

  • 出版商: 人民郵電
  • 出版日期: 2021-11-01
  • 售價: $359
  • 貴賓價: 9.5$341
  • 語言: 簡體中文
  • 頁數: 260
  • ISBN: 7115569991
  • ISBN-13: 9787115569998
  • 相關分類: Web-crawler 網路爬蟲
  • 立即出貨

  • Python爬蟲項目教程(微課版)-preview-1
  • Python爬蟲項目教程(微課版)-preview-2
Python爬蟲項目教程(微課版)-preview-1

商品描述

本書以Python語言為基礎,介紹了爬蟲的基礎知識。本書包括6個實戰項目,分別為爬取外匯網站數據、爬取名言網站數據、爬取電影網站數據、爬取圖書網站數據、爬取商城網站數據、爬取景區網站數據,通過這些項目講解了Python的Web訪問技術、BeautifulSoup的數據分析與提取技術、深度優先與廣度優先順序爬取技術、多線程網頁爬取技術、scrapy分佈式爬取框架技術、selenium爬蟲程序技術、AWS中的DynamoDB數據庫的NoSQL存儲技術等。本書每個項目都遵循由淺入深的學習規律,採取理論與實踐相結合的方式來引導讀者完成實戰。

本書可作為電腦軟件技術專業及其相關專業的程序設計課程教材。

作者簡介

黄锐军, 深圳信息职业技术学院软件学院副教授,研究生学历。主要从事计算机软件技术课程教学,有二十多年的职业教学经历。从事软件开发,先后为深圳市职业技能鉴定中心开发了序列应用软件。

目錄大綱

項目1 爬取外匯網站數據 1

1.1 項目任務 1

1.2 搭建爬蟲程序開發環境 1

1.2.1 理解爬蟲程序 2

1.2.2 搭建開發環境 2

1.3 使用Flask創建Web網站 3

1.3.1 安裝Flask框架 3

1.3.2 創建模擬外匯網站 4

1.3.3 編寫客戶端程序並獲取網站的HTML代碼 5

1.4 使用GET方法訪問Web網站 7

1.4.1 客戶端使用GET方法發送數據 7

1.4.2 服務器端使用GET方法獲取數據 8

1.5 使用POST方法訪問Web網站 9

1.5.1 客戶端使用POST方法發送數據 9

1.5.2 服務器端使用POST方法獲取數據 10

1.5.3 混合使用GET與POST方法 11

1.6 使用正則表達式匹配數據 13

1.6.1 使用正則表達式匹配字符串 14

1.6.2 使用正則表達式爬取數據 17

1.7 綜合項目 爬取模擬外匯網站數據 18

1.7.1 創建模擬外匯網站 18

1.7.2 解析網站的HTML代碼 19

1.7.3 設計存儲數據庫 19

1.7.4 編寫爬蟲程序 20

1.7.5 執行爬蟲程序 22

1.8 實戰項目 爬取實際外匯網站數據 22

1.8.1 解析網站的HTML代碼 22

1.8.2 爬取網站外匯匯率數據 24

1.8.3 設計存儲數據庫 25

1.8.4 編寫爬蟲程序 26

1.8.5 執行爬蟲程序 28

項目總結 29

練習1 29

項目2 爬取名言網站數據 30

2.1 項目任務 30

2.2 使用BeautifulSoup裝載HTML文檔 30

2.2.1 創建模擬名言網站 31

2.2.2 安裝BeautifulSoup程序包 32

2.2.3 裝載HTML文檔 32

2.3 使用BeautifulSoup查找HTML元素 34

2.3.1 使用find()函數查找 34

2.3.2 查找元素屬性與文本 37

2.3.3 使用find_all()函數查找 38

2.3.4 使用高級查找 40

2.4 使用BeautifulSoup遍歷文檔元素 42

2.4.1 獲取元素節點的父節點 42

2.4.2 獲取元素節點的直接子節點 43

2.4.3 獲取元素節點的所有子孫節點 44

2.4.4 獲取元素節點的兄弟節點 45

2.5 BeautifulSoup支持使用CSS語法進行查找 46

2.5.1 使用CSS語法查找 47

2.5.2 使用屬性的語法規則 48

2.5.3 使用select()查找子孫節點 49

2.5.4 使用select()查找直接子節點 49

2.5.5 使用select()查找兄弟節點 49

2.5.6 使用select_one()查找單一元素 50

2.6 綜合項目 爬取模擬名言網站數據 51

2.6.1 創建模擬名言網站 51

2.6.2 爬取名言數據 51

2.6.3 設計存儲數據庫 52

2.6.4 編寫爬蟲程序 52

2.6.5 執行爬蟲程序 54

2.7 實戰項目 爬取實際名言網站

數據 55

2.7.1 解析網站的HTML代碼 55

2.7.2 爬取全部頁面的數據 56

2.7.3 編寫爬蟲程序 57

2.7.4 執行爬蟲程序 59

項目總結 60

練習2 60

項目3 爬取電影網站數據 63

3.1 項目任務 63

3.2 簡單爬取網站數據 64

3.2.1 創建模擬電影網站 65

3.2.2 爬取網站數據 66

3.2.3 編寫爬蟲程序 68

3.2.4 執行爬蟲程序 69

3.3 遞歸爬取網站數據 69

3.3.1 創建模擬電影網站 69

3.3.2 解析電影網站結構 72

3.3.3 遞歸爬取電影網站數據 72

3.4 深度優先爬取網站數據 73

3.4.1 深度優先法 73

3.4.2 深度優先爬蟲程序 74

3.5 廣度優先爬取網站數據 75

3.5.1 廣度優先法 75

3.5.2 廣度優先爬蟲程序 76

3.6 爬取翻頁網站數據 77

3.6.1 使用Flask模板參數 77

3.6.2 創建翻頁電影網站 81

3.6.3 編寫爬蟲程序 84

3.6.4 執行爬蟲程序 85

3.7 爬取網站全部圖像 86

3.7.1 創建模擬電影網站 86

3.7.2 使用單線程程序爬取圖像 88

3.7.3 使用Python的多線程 90

3.7.4 使用多線程程序爬取圖像 93

3.8 綜合項目 爬取模擬電影網站數據 95

3.8.1 創建模擬電影網站 95

3.8.2 設計存儲數據庫 98

3.8.3 編寫爬蟲程序 99

3.8.4 執行爬蟲程序 102

3.9 實戰項目 爬取實際電影網站數據 103

3.9.1 解析電影網站的HTML代碼 103

3.9.2 爬取電影網站數據 105

3.9.3 編寫爬蟲程序 107

3.9.4 執行爬蟲程序 111

項目總結 112

練習3 112

項目4 爬取圖書網站數據 113

4.1 項目任務 113

4.2 使用scrapy創建爬蟲程序 115

4.2.1 創建網站服務器程序 115

4.2.2 安裝scrapy框架 115

4.2.3 scrapy項目的創建 115

4.2.4 入口函數與入口地址 118

4.2.5 Python的yield語句 118

4.3 使用BeautifulSoup爬取數據 119

4.3.1 創建模擬圖書網站 119

4.3.2 解析網站的HTML代碼 120

4.3.3 爬取圖書圖像 121

4.3.4 編寫爬蟲程序 122

4.3.5 執行爬蟲程序 123

4.4 使用XPath查找元素 123

4.4.1 scrapy的XPath簡介 124

4.4.2 使用XPath查找HTML元素 125

4.4.3 使用XPath與BeautifulSoup 134

4.5 爬取關聯網頁數據 135

4.5.1 創建模擬圖書網站 135

4.5.2 程序爬取網頁的順序 137

4.5.3 理解scrapy分佈式 139

4.6 使用XPath爬取數據 140

4.6.1 創建模擬圖書網站 140

4.6.2 解析網站的HTML代碼 142

4.6.3 爬取圖書圖像 143

4.6.4 設計數據庫存儲 144

4.6.5 編寫爬蟲程序 144

4.6.6 執行爬蟲程序 146

4.7 使用管道存儲數據 147

4.7.1 創建模擬圖書網站 147

4.7.2 編寫數據字段類 149

4.7.3 編寫爬蟲程序類 150

4.7.4 編寫數據管道類 151

4.7.5 設置scrapy的配置文件 153

4.7.6 執行爬蟲程序 153

4.8 綜合項目 爬取模擬圖書網站數據 154

4.8.1 創建模擬圖書網站 154

4.8.2 編寫數據字段類 157

4.8.3 編寫數據管道類 157

4.8.4 編寫爬蟲程序類 158

4.8.5 設置scrapy的配置文件 160

4.8.6 執行爬蟲程序 160

4.9 實戰項目 爬取實際圖書網站數據 161

4.9.1 解析網站的HTML代碼 161

4.9.2 爬取網站圖書數據 164

4.9.3 實現自動翻頁 165

4.9.4 編寫爬蟲程序 167

4.9.5 執行爬蟲程序並查看爬取結果 170

項目總結 172

練習4 172

項目5 爬取商城網站數據 174

5.1 項目任務 174

5.2 使用selenium編寫爬蟲程序 176

5.2.1 JavaScript程序控制網頁 176

5.2.2 普通爬蟲程序的問題 177

5.2.3 安裝selenium與Chrome驅動程序 178

5.2.4 編寫selenium爬蟲程序 178

5.3 使用selenium查找HTML元素 180

5.3.1 創建模擬商城網站 180

5.3.2 使用XPath查找元素 182

5.3.3 查找元素的文本與屬性 182

5.3.4 使用id值查找元素 184

5.3.5 使用name屬性值查找元素 184

5.3.6 使用CSS查找元素 184

5.3.7 使用tagName查找元素 185

5.3.8 使用文本查找超鏈接 186

5.3.9 使用class值查找元素 186

5.4 使用selenium實現用戶登錄 187

5.4.1 創建用戶登錄網站 187

5.4.2 使用元素動作 188

5.4.3 編寫爬蟲程序 189

5.4.4 執行JavaScript程序 191

5.5 使用selenium爬取Ajax網頁數據 192

5.5.1 創建Ajax網站 192

5.5.2 理解selenium爬蟲程序 194

5.5.3 編寫爬蟲程序 197

5.5.4 執行爬蟲程序 198

5.6 使用selenium等待HTML元素 198

5.6.1 創建延遲模擬網站 199

5.6.2 編寫爬蟲程序 200

5.6.3 selenium強制等待 200

5.6.4 selenium隱式等待 201

5.6.5 selenium循環等待與顯式等待 202

5.6.6 selenium顯式等待形式 204

5.7 綜合項目 爬取模擬商城網站數據 205

5.7.1 創建模擬商城網站 205

5.7.2 爬取網站數據並實現網頁翻頁 209

5.7.3 設計數據存儲與圖像存儲 210

5.7.4 編寫爬蟲程序 211

5.7.5 執行爬蟲程序 214

5.8 實戰項目 爬取實際商城網站數據 215

5.8.1 解析網站的HTML代碼 215

5.8.2 爬取網站數據 218

5.8.3 實現網頁翻頁 220

5.8.4 編寫爬蟲程序 222

5.8.5 執行爬蟲程序 226

項目總結 228

練習5 228

項目6 爬取景區網站數據 230

6.1 項目任務 230

6.2 使用DynamoDB存儲模擬景區網站數據 231

6.2.1 創建模擬景區網站 231

6.2.2 爬取網站數據 233

6.2.3 編寫爬蟲程序 234

6.2.4 執行爬蟲程序 235

6.2.5 DynamoDB簡介 235

6.3 登錄AWS數據庫 236

6.3.1 登錄AWS 236

6.3.2 創建數據庫表 238

6.4 DynamoDB數據庫操作 240

6.4.1 存儲數據 240

6.4.2 讀取數據 241

6.4.3 修改數據 242

6.4.4 刪除數據 243

6.4.5 掃描數據 243

6.4.6 刪除數據庫表 244

6.5 綜合項目 爬取模擬景區網站數據 245

6.5.1 創建模擬景區網站 245

6.5.2 編寫爬蟲程序 245

6.5.3 執行爬蟲程序 248

6.6 實戰項目 爬取實際景區網站數據 249

6.6.1 解析網站的HTML代碼 250

6.6.2 爬取網站景區數據 252

6.6.3 爬取全部頁面的數據 254

6.6.4 設計存儲數據庫 255

6.6.5 編寫爬蟲程序 255

6.6.6 執行爬蟲程序 259

項目總結 260

練習6 260