本書基于Python 3.10版本,以項目實戰(zhàn)的方式系統(tǒng)地介紹了Python網絡爬蟲開發(fā)的相關知識,主要內容包括Python基礎實戰(zhàn)、網頁數據采集實戰(zhàn)、網頁數據解析實戰(zhàn)、并發(fā)技術實戰(zhàn)、動態(tài)內容采集實戰(zhàn)、爬蟲數據存儲實戰(zhàn)、Scrapy爬蟲框架實戰(zhàn)等,通過多個實戰(zhàn)任務的練習,讓讀者能最大限度地掌握Python網絡爬蟲的核心技術。為了方便讀者學習,本書附有配套源代碼、教學PPT、題庫、教學視頻、教學設計等資源。本書可作為高等院校計算機相關專業(yè)程序設計課程教材,也可供從事計算機爬蟲應用開發(fā)的相關人員使用。
劉珍,中共黨員,湖南大學全日制碩士研究生,計算機科學與技術高級講師,福田區(qū)技術能手,計算機網絡管理高級技師、電子商務高級技師,至今從事教育工作14余年,累計獲得各項教研成果獎項30余項,主持教科研項目3項,參與教科研項目6項,累計發(fā)表科研論文10余篇,獲得計算機軟件開發(fā)專利著作權5項,主編《微信小程序開發(fā)》教材,主講廣東省級精品課程《小程序開發(fā)》。
項目1 Python基礎實戰(zhàn) 1
任務1.1 Python開發(fā)環(huán)境搭建 2
1.1.1 在Windows系統(tǒng)中安裝Python 2
1.1.2 在Linux系統(tǒng)中安裝Python 4
1.1.3 安裝PyCharm集成開發(fā)環(huán)境 5
任務1.2 從HTML文檔中提取特定字符串 10
1.2.1 數值類型與變量 10
1.2.2 字符串 11
1.2.3 運算符 12
1.2.4 流程控制 13
任務1.3 用列表、字典等組織數據 16
1.3.1 列表(list) 17
1.3.2 元組(tuple) 17
1.3.3 字典(dict) 18
1.3.4 集合(set) 19
1.3.5 函數 20
任務1.4 基于正則表達式提取圖片鏈接文本 23
1.4.1 模塊和包 23
1.4.2 異常處理 26
1.4.3 正則表達式 28
任務1.5 從JSON文件中加載數據 31
1.5.1 類與對象 31
1.5.2 文件與目錄操作 34
1.5.3 JSON 38
項目2 網頁數據采集實戰(zhàn) 43
任務2.1 利用工具爬取一個電商網頁 43
2.1.1 爬蟲的定義 44
2.1.2 爬蟲的類型 44
2.1.3 與爬蟲相關的網站文件 47
2.1.4 反爬蟲應對策略 48
2.1.5 爬蟲的合法性 50
任務2.2 基于urllib庫爬取一個電商網頁 57
任務2.3 urllib處理發(fā)送GET/POST請求 61
任務2.4 請求頭偽裝與代理服務器應用 66
2.4.1 請求頭偽裝 67
2.4.2 代理服務器 67
任務2.5 網絡異常處理 73
2.5.1 URLError 73
2.5.2 HTTPError 74
任務2.6 基于requests庫爬取電商網頁 74
項目3 網頁數據解析實戰(zhàn) 79
任務3.1 HTML基礎 79
3.1.1 HTML網頁的結構 80
3.1.2 Chrome瀏覽器的DevTools 81
任務3.2 基于正則表達式的網頁數據解析 85
任務3.3 XPath應用 88
3.3.1 XPath簡介 89
3.3.2 lxml簡介 94
任務3.4 Beautiful Soup解析數據 99
任務3.5 JSON數據解析 106
項目4 并發(fā)技術實戰(zhàn) 112
任務4.1 基于進程的并發(fā)爬蟲 112
4.1.1 并發(fā)原理 113
4.1.2 進程(Process) 113
4.1.3 Python的多進程并發(fā)編程 114
任務4.2 基于queue模塊的多線程爬蟲 122
4.2.1 線程(Thread) 123
4.2.2 Python的多線程并發(fā)編程 123
任務4.3 基于協(xié)程的并發(fā)爬蟲 129
任務4.4 歷史天氣并發(fā)爬取 131
項目5 動態(tài)內容采集實戰(zhàn) 139
任務5.1 動態(tài)網頁基礎 139
任務5.2 Selenium的安裝配置 144
任務5.3 基于Selenium的動態(tài)網頁爬取 148
任務5.4 基于Selenium的模擬登錄 150
任務5.5 驗證碼的識別處理 154
5.5.1 驗證碼基礎 154
5.5.2 Pytesseract簡介 155
5.5.3 PIL簡介 156
任務5.6 基于Selenium的招聘職位獲取 159
項目6 爬蟲數據存儲實戰(zhàn) 165
任務6.1 MongoDB基礎 165
6.1.1 MongoDB的安裝 166
6.1.2 MongoDB的基本操作 170
任務6.2 基于PyMongo的爬蟲數據存儲 174
任務6.3 Redis數據庫基礎 179
6.3.1 Redis的安裝 180
6.3.2 Redis的操作命令 182
任務6.4 基于redis模塊的爬蟲數據存儲 184
項目7 Scrapy爬蟲框架實戰(zhàn) 188
任務7.1 Scrapy爬蟲框架基礎 188
7.1.1 Scrapy爬蟲框架簡介 189
7.1.2 Scrapy項目創(chuàng)建 191
7.1.3 Scrapy常用命令 192
任務7.2 定義Spider爬取斗魚直播平臺數據 195
7.2.1 Item類簡介 196
7.2.2 Spider類簡介 196
任務7.3 自定義爬蟲中間件爬取眾圖網數據 202
7.3.1 Scrapy的settings文件 202
7.3.2 Downloader Middlewares 203
任務7.4 CrawlSpider自動爬取數據 213
7.4.1 CrawlSpider 213
7.4.2 Rule 214
7.4.3 LinkExtractor 215
任務7.5 應用Item Pipeline進行后期數據處理 219
任務7.6 綜合實訓——百度科學百科數據爬取 222