網(wǎng)絡爬蟲是按照一定規(guī)則自動請求服務器上的網(wǎng)頁,并采集網(wǎng)頁數(shù)據(jù)的一種程序或腳本,它可以代替人進行數(shù)據(jù)采集,也可以自動采集網(wǎng)頁數(shù)據(jù)、高效利用互聯(lián)網(wǎng)數(shù)據(jù),因此在市場應用中占據(jù)了重要位置。本書以Windows操作系統(tǒng)為主要開發(fā)平臺,系統(tǒng)、全面地講解了網(wǎng)絡爬蟲的相關(guān)知識。本書的主要內(nèi)容包括保存服務器網(wǎng)頁到本地、使用正則表達式提取網(wǎng)頁內(nèi)容、爬取豆瓣電影TOP250欄目、使用requests庫爬取電影網(wǎng)站、通過模擬用戶登錄爬取網(wǎng)站、使用Scrapy框架爬取圖片網(wǎng)站、使用分布式爬蟲爬取騰訊招聘頻道,主要知識點囊括網(wǎng)絡爬蟲基礎(chǔ)知識、網(wǎng)頁請求原理、抓取靜態(tài)網(wǎng)頁數(shù)據(jù)、解析網(wǎng)頁數(shù)據(jù)、抓取動態(tài)網(wǎng)頁數(shù)據(jù)、網(wǎng)絡爬蟲的優(yōu)化、數(shù)據(jù)的持久化存儲、識別驗證碼、搭建網(wǎng)絡爬蟲框架、網(wǎng)絡分布式爬蟲Scrapy-Redis的開發(fā)和部署等。本書內(nèi)容通俗易懂,案例豐富,實用性強,特別適合Python語言的基礎(chǔ)學習者和進階學習者,也適合Python程序員、爬蟲工程師等編程愛好者。本書不僅可以作為高校教材,也可以作為相關(guān)培訓機構(gòu)的教材,還可以作為廣大網(wǎng)絡爬蟲開發(fā)者的參考書。此外,本書開發(fā)了豐富的教學資源庫,并免費提供所有素材。
		
	
錢游,副教授,重慶市名師工作室學員,主要從事人工智能、數(shù)據(jù)挖掘研究。主持市級項目2項、校級在線課程1門。發(fā)表論文16篇,其中中文核心期刊論文3篇,教研教改論文5篇。編寫教材5部,獲國家級實用新型專利5項,軟件著作權(quán)4項,軟件開發(fā)社會服務項目近30項,榮獲市級教學成果獎、全國嵌入式競賽優(yōu)秀指導老師獎、全國大學生電子設計競賽(重慶賽區(qū)"TI杯”)一等獎等十余項獎項。
目  錄
項目一 保存服務器網(wǎng)頁到本地	1
任務1 認識網(wǎng)絡爬蟲	2
任務演示	2
知識準備	2
1. 初步認識網(wǎng)絡爬蟲	2
2. 網(wǎng)絡爬蟲的結(jié)構(gòu)及其工作原理	4
3. 爬蟲技術(shù)的風險與Robots協(xié)議	5
4. Python的安裝	6
5. Pygame的簡單使用	11
任務實施	12
任務拓展	13
1. 反爬蟲的目的與手段	13
2. Windows環(huán)境下的MongoDB數(shù)據(jù)庫安裝和配置	14
3. Linux環(huán)境下的MongoDB數(shù)據(jù)庫安裝和配置	16
任務2 將請求到的網(wǎng)頁保存到本地	18
任務演示	18
知識準備	19
1. 使用urllib請求網(wǎng)頁	19
2. 安裝和配置MySQL數(shù)據(jù)庫	20
任務實施	28
任務拓展	29
小結(jié)	30
復習題	31
項目二 使用正則表達式提取網(wǎng)頁內(nèi)容	32
任務1 在網(wǎng)頁上展示偉大抗疫精神	33
任務演示	33
知識準備	33
1. HTML基礎(chǔ)知識	33
2. CSS基礎(chǔ)知識	35
3. CSS樣式選擇器	38
任務實施	44
任務拓展	45
1. JavaScript的引入	45
2. JavaScript的基本語法	48
任務2 使用正則表達式提取文本中的指定內(nèi)容	53
任務演示	53
知識準備	53
1. 正則表達式的基本語法	54
2. 正則表達式的使用	57
任務實施	61
任務拓展	62
小結(jié)	63
復習題	63
項目三 爬取豆瓣電影TOP250欄目	65
任務1 使用urllib框架請求網(wǎng)頁	66
任務演示	66
知識準備	66
1. 網(wǎng)絡爬蟲開發(fā)的基本流程	66
2. urllib框架的基本模塊	66
3. 字符的編碼和解碼	74
任務實施	76
1. URL分析	76
2. 編碼規(guī)范	77
3. 爬取豆瓣電影TOP250欄目	77
任務拓展	81
任務2 使用BeautifulSoup4解析網(wǎng)頁	82
任務演示	82
知識準備	82
1. BeautifulSoup4的四個對象	82
2. 文檔的遍歷	86
3. 文檔的搜索	91
任務實施	95
任務拓展	97
任務3 使用XPath解析網(wǎng)頁數(shù)據(jù)	99
任務演示	99
知識準備	99
任務實施	105
任務拓展	106
任務4 數(shù)據(jù)的持久化存儲	108
任務演示	108
知識準備	108
任務實施	116
任務拓展	118
小結(jié)	121
復習題	121
項目四 使用requests庫爬取電影網(wǎng)站	123
任務1 使用requests庫請求網(wǎng)頁	124
任務演示	124
知識準備	124
1. requests庫的安裝	124
2. GET請求	125
3. POST請求	126
任務實施	129
任務拓展	131
任務2 使用requests-html庫解析網(wǎng)頁	136
任務演示	136
知識準備	136
1. requests-html庫的新功能	136
2. requests-html庫的安裝	136
3. requests-html庫的使用	137
任務實施	139
任務拓展	142
1. 網(wǎng)絡爬蟲的優(yōu)化	142
2. 將請求到的數(shù)據(jù)保存到MySQL數(shù)據(jù)庫中	145
小結(jié)	149
復習題	149
項目五 通過模擬用戶登錄爬取網(wǎng)站	151
任務1 模擬用戶登錄	152
任務演示	152
知識準備	152
1. 使用ddddocr模塊識別驗證碼	153
2. 使用在線平臺進行打碼	153
任務實施	160
1. 對古詩文網(wǎng)的登錄驗證碼進行驗證	160
2. 實現(xiàn)模擬用戶登錄	163
任務拓展	167
1. 攜帶Cookies請求網(wǎng)頁	167
2. 古詩文網(wǎng)登錄實現(xiàn)	169
3. 在登錄成功后進行數(shù)據(jù)采集	174
任務2 使用Selenium模擬用戶登錄豆瓣網(wǎng)	175
任務演示	175
知識準備	176
1. 什么是Selenium	176
2. Selenium的安裝	176
任務實施	180
任務拓展	182
小結(jié)	184
復習題	185
項目六 使用Scrapy框架爬取圖片網(wǎng)站	186
任務1 Scrapy開發(fā)環(huán)境搭建	187
任務演示	187
知識準備	187
1. 常見的爬蟲框架	187
2. Scrapy框架概述	188
任務實施	189
任務拓展	196
任務2 使用Scrapy框架爬取代理IP	200
任務演示	200
知識準備	200
1. XPath選擇器	200
2. CSS選擇器	201
任務實施	202
任務拓展	210
任務3 Scrapy數(shù)據(jù)的持久化存儲	211
任務演示	211
知識準備	211
1. 基于終端命令存儲	212
2. 基于管道存儲	212
任務實施	214
1. 實現(xiàn)基于終端命令的數(shù)據(jù)持久化存儲	214
2. 實現(xiàn)基于管道的數(shù)據(jù)持久化存儲——使用文本存儲數(shù)據(jù)	215
3. 實現(xiàn)基于管道的數(shù)據(jù)持久化存儲—使用MySQL數(shù)據(jù)庫存儲數(shù)據(jù)	219
4. 實現(xiàn)基于管道的數(shù)據(jù)持久化存儲——使用Redis數(shù)據(jù)庫存儲數(shù)據(jù)	221
5. 實現(xiàn)基于管道的數(shù)據(jù)持久化存儲——使用MongoDB數(shù)據(jù)庫存儲數(shù)據(jù)	224
任務拓展	227
任務4 爬取圖片網(wǎng)站	230
任務演示	230
知識準備	230
任務實施	231
任務拓展	235
1. 將爬取的圖片名及其路徑保存到MySQL數(shù)據(jù)庫中	235
2. 使用Scrapy框架爬取圖說歷史欄目	236
小結(jié)	239
復習題	239
項目七 使用分布式爬蟲爬取騰訊招聘頻道	241
任務1 搭建Scrapy-Redis開發(fā)環(huán)境	242
任務演示	242
知識準備	242
1. 分布式爬蟲的基本概念	242
2. 分布式環(huán)境的搭建	243
3. 在Ubuntu系統(tǒng)上安裝Scrapy	247
4. 在CentOS 7系統(tǒng)上安裝Scrapy	249
任務實施	250
任務拓展	251
任務2  開發(fā)分布式爬蟲	252
任務演示	252
知識準備	253
任務實施	254
1. 創(chuàng)建Scrapy爬蟲	254
2. 初始化配置	256
3. 網(wǎng)站結(jié)構(gòu)分析	256
4. 爬蟲的核心代碼	261
5. 部署分布式爬蟲	266
任務拓展	271
1. 隨機請求頭	271
2. 爬取視頻	273
小結(jié)	277
復習題	277