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