Python網(wǎng)絡(luò)爬蟲基礎(chǔ)教程
定 價:59.8 元
- 作者:黑馬程序員
- 出版時間:2022/5/1
- ISBN:9787115589156
- 出 版 社:人民郵電出版社
- 中圖法分類:TP311.561
- 頁碼:0
- 紙張:
- 版次:01
- 開本:16開
網(wǎng)絡(luò)爬蟲是一種按照一定的規(guī)則,自動請求萬維網(wǎng)網(wǎng)站并采集網(wǎng)頁數(shù)據(jù)的程序或腳本。它可以代替人進(jìn)行信息采集,能夠自動采集并高效利用互聯(lián)網(wǎng)中的數(shù)據(jù),因此在市場的應(yīng)用需求中占據(jù)重要位置。
本書以Windows為主要開發(fā)平臺,系統(tǒng)、全面地講解Python網(wǎng)絡(luò)爬蟲的相關(guān)知識。本書的主要內(nèi)容包括認(rèn)識網(wǎng)絡(luò)爬蟲、網(wǎng)頁請求原理、抓取靜態(tài)網(wǎng)頁數(shù)據(jù)、解析網(wǎng)頁數(shù)據(jù)、抓取動態(tài)網(wǎng)頁數(shù)據(jù)、提升網(wǎng)絡(luò)爬蟲速度、存儲數(shù)據(jù)、驗證碼識別、初識網(wǎng)絡(luò)爬蟲框架Scrapy、Scrapy核心組件與CrawlSpider類、分布式網(wǎng)絡(luò)爬蟲Scrapy-Redis。
本書可以作為高等院校計算機(jī)相關(guān)專業(yè)程序設(shè)計課程的教材、Python網(wǎng)絡(luò)爬蟲的相關(guān)培訓(xùn)教材,以及廣大編程開發(fā)者的網(wǎng)絡(luò)爬蟲入門級教材。
1.本書編寫時充分考慮初學(xué)者的閱讀體驗,語言通俗易懂,也非常適合老師教學(xué)。
2.本書配置了豐富的實踐項目,大多由傳智項目庫提供,項目變動小,降低了因網(wǎng)站變動而導(dǎo)致項目不可用的風(fēng)險。
3.本書涵蓋知識點全面,知識細(xì)節(jié)豐富,系統(tǒng)性強(qiáng)。
4.配套資源更豐富、教學(xué)服務(wù)更周到(免費提供各類教學(xué)資源,協(xié)助老師答疑解惑,定制教學(xué)資源,定期提供各類學(xué)習(xí)資源)。
黑馬程序員,傳智播客旗下高端教育品牌,成立于2006年,它是由中國Java培訓(xùn)先行者張孝祥老師發(fā)起,聯(lián)合全球最大的中文IT社區(qū)CSDN、中關(guān)村軟件園共同創(chuàng)辦的一家專業(yè)教育機(jī)構(gòu)。辦學(xué)至今,我們一直堅守著“為千萬人少走彎路而著書,為中華軟件之崛起而講課”的辦學(xué)理念,堅持培養(yǎng)優(yōu)秀軟件應(yīng)用工程師的宏偉目標(biāo),在累計培養(yǎng)的十萬余名學(xué)員中。
第 1章 認(rèn)識網(wǎng)絡(luò)爬蟲 001
1.1 什么是網(wǎng)絡(luò)爬蟲 001
1.2 網(wǎng)絡(luò)爬蟲的應(yīng)用場景 002
1.3 網(wǎng)絡(luò)爬蟲合法性探究 003
1.3.1 Robots協(xié)議 003
1.3.2 防爬蟲應(yīng)對策略 005
1.4 網(wǎng)絡(luò)爬蟲的工作原理和流程 006
1.4.1 網(wǎng)絡(luò)爬蟲的工作原理 006
1.4.2 網(wǎng)絡(luò)爬蟲抓取網(wǎng)頁的流程 008
1.5 網(wǎng)絡(luò)爬蟲實現(xiàn)技術(shù)探究 009
1.5.1 網(wǎng)絡(luò)爬蟲的實現(xiàn)技術(shù) 009
1.5.2 Python實現(xiàn)網(wǎng)絡(luò)爬蟲的流程 010
1.6 本章小結(jié) 011
1.7 習(xí)題 011
第 2章 網(wǎng)頁請求原理 013
2.1 瀏覽器加載網(wǎng)頁的過程 013
2.2 HTTP基礎(chǔ) 014
2.2.1 URL簡介 014
2.2.2 HTTP和HTTPS 015
2.2.3 HTTP請求格式 016
2.2.4 HTTP響應(yīng)格式 017
2.3 網(wǎng)頁基礎(chǔ) 019
2.3.1 網(wǎng)頁開發(fā)技術(shù) 019
2.3.2 網(wǎng)頁的結(jié)構(gòu) 021
2.3.3 網(wǎng)頁的分類 022
2.3.4 網(wǎng)頁數(shù)據(jù)的格式 024
2.4 HTTP抓包工具——Fiddler 026
2.4.1 Fiddler的工作原理 026
2.4.2 Fiddler的下載與安裝 027
2.4.3 Fiddler界面詳解 029
2.4.4 Fiddler捕獲HTTPS頁面的設(shè)置 032
2.4.5 Fiddler的基本使用 039
2.5 本章小結(jié) 041
2.6 習(xí)題 041
第3章 抓取靜態(tài)網(wǎng)頁數(shù)據(jù) 043
3.1 抓取靜態(tài)網(wǎng)頁的技術(shù) 043
3.2 發(fā)送基本請求 044
3.2.1 發(fā)送GET請求 044
3.2.2 發(fā)送POST請求 046
3.2.3 處理響應(yīng) 047
3.3 處理復(fù)雜請求 049
3.3.1 定制請求頭 049
3.3.2 驗證Cookie 051
3.3.3 保持會話 052
3.3.4 SSL證書驗證 053
3.4 設(shè)置代理服務(wù)器 054
3.4.1 代理服務(wù)器簡介 054
3.4.2 設(shè)置代理服務(wù)器 055
3.4.3 檢測代理IP的有效性 056
3.5 處理異常 057
3.6 實踐項目:抓取黑馬程序員論壇的數(shù)據(jù) 059
【項目目標(biāo)】 059
【項目分析】 060
【項目實現(xiàn)】 061
3.7 本章小結(jié) 063
3.8 習(xí)題 063
第4章 解析網(wǎng)頁數(shù)據(jù) 065
4.1 解析網(wǎng)頁數(shù)據(jù)的技術(shù) 065
4.2 正則表達(dá)式與re模塊 066
4.2.1 正則表達(dá)式的語法 066
4.2.2 re模塊的使用 068
4.3 XPath與lxml庫 069
4.3.1 XPath簡介 069
4.3.2 XPath語法 070
4.3.3 XPath開發(fā)工具 073
4.3.4 lxml庫簡介 075
4.4 Beautiful Soup庫 077
4.4.1 Beautiful Soup簡介 077
4.4.2 創(chuàng)建BeautifulSoup類的對象 078
4.4.3 通過查找方法選取節(jié)點 080
4.4.4 通過CSS選擇器選取節(jié)點 081
4.5 JSONPath與jsonpath模塊 083
4.5.1 JSONPath語法 083
4.5.2 jsonpath模塊的使用 085
4.6 實踐項目:采集黑馬程序員論壇的帖子 088
【項目目標(biāo)】 088
【項目分析】 089
【項目實現(xiàn)】 090
4.7 本章小結(jié) 093
4.8 習(xí)題 093
第5章 抓取動態(tài)網(wǎng)頁數(shù)據(jù) 095
5.1 抓取動態(tài)網(wǎng)頁的技術(shù) 095
5.2 Selenium和WebDriver的安裝與配置 096
5.3 Selenium的基本使用 099
5.3.1 WebDriver類的常用屬性和方法 100
5.3.2 定位元素 102
5.3.3 鼠標(biāo)操作 105
5.3.4 下拉列表框操作 107
5.3.5 彈出框處理 108
5.3.6 頁面切換 110
5.3.7 頁面等待 111
5.4 實踐項目:采集集信達(dá)平臺的短信服務(wù)日志信息 114
【項目目標(biāo)】 114
【項目分析】 116
【項目實現(xiàn)】 119
5.5 本章小結(jié) 122
5.6 習(xí)題 123
第6章 提升網(wǎng)絡(luò)爬蟲速度 125
6.1 網(wǎng)絡(luò)爬蟲速度提升方案 125
6.2 多線程爬蟲 126
6.2.1 多線程爬蟲流程分析 126
6.2.2 多線程爬蟲實現(xiàn)技術(shù) 127
6.2.3 多線程爬蟲基本示例 130
6.2.4 多線程爬蟲性能分析 133
6.3 協(xié)程爬蟲 134
6.3.1 協(xié)程爬蟲流程分析 134
6.3.2 協(xié)程爬蟲實現(xiàn)技術(shù) 135
6.3.3 協(xié)程爬蟲基本示例 137
6.3.4 協(xié)程爬蟲性能分析 138
6.4 實踐項目:采集黑馬頭條的評論列表 139
【項目目標(biāo)】 139
【項目分析】 140
【項目實現(xiàn)】 141
6.5 本章小結(jié) 144
6.6 習(xí)題 144
第7章 存儲數(shù)據(jù) 146
7.1 數(shù)據(jù)存儲的方式 146
7.2 存儲至MongoDB數(shù)據(jù)庫 147
7.2.1 下載與安裝MongoDB 147
7.2.2 使用Python操作MongoDB 151
7.3 存儲至Redis數(shù)據(jù)庫 154
7.3.1 下載與安裝Redis 154
7.3.2 使用Python操作Redis 157
7.3.3 Redis桌面管理工具 159
7.4 實踐項目:采集小兔鮮兒網(wǎng)的商品信息 162
【項目目標(biāo)】 162
【項目分析】 164
【項目實現(xiàn)】 167
7.5 本章小結(jié) 170
7.6 習(xí)題 170
第8章 驗證碼識別 172
8.1 驗證碼識別 172
8.1.1 字符驗證碼的識別 172
8.1.2 滑動拼圖驗證碼的識別 181
8.1.3 點選驗證碼的識別 181
8.2 實踐項目:登錄黑馬頭條后臺管理系統(tǒng) 188
【項目目標(biāo)】 188
【項目分析】 189
【項目實現(xiàn)】 191
8.3 本章小結(jié) 197
8.4 習(xí)題 197
第9章 初識網(wǎng)絡(luò)爬蟲框架Scrapy 199
9.1 Scrapy框架簡介 199
9.2 Scrapy框架架構(gòu) 200
9.3 Scrapy框架運(yùn)作流程 201
9.4 Scrapy框架安裝 203
9.5 Scrapy框架基本操作 205
9.5.1 新建Scrapy項目 205
9.5.2 明確采集目標(biāo) 206
9.5.3 制作爬蟲 207
9.5.4 永久存儲數(shù)據(jù) 212
9.6 實踐項目:采集黑馬程序員視頻庫的視頻信息 213
【項目目標(biāo)】 213
【項目分析】 213
【項目實現(xiàn)】 214
9.7 本章小結(jié) 216
9.8 習(xí)題 216
第 10章 Scrapy核心組件與CrawlSpider類 219
10.1 Spiders組件 219
10.2 Item Pipeline組件 220
10.3 Downloader Middlewares組件 222
10.3.1 內(nèi)置下載中間件 223
10.3.2 自定義下載中間件 223
10.3.3 激活下載中間件 225
10.4 Settings組件 225
10.5 CrawlSpider類 227
10.5.1 CrawlSpider類簡介 227
10.5.2 CrawlSpider類的工作原理 229
10.5.3 通過Rule類決定抓取規(guī)則 230
10.5.4 通過LinkExtractor類提取鏈接 231
10.6 實踐項目:采集暢購商城的華為手表信息 232
【項目目標(biāo)】 233
【項目分析】 233
【項目實現(xiàn)】 234
10.7 本章小結(jié) 236
10.8 習(xí)題 236
第 11章 分布式網(wǎng)絡(luò)爬蟲Scrapy-Redis 238
11.1 分布式網(wǎng)絡(luò)爬蟲簡介 238
11.2 Scrapy-Redis架構(gòu) 240
11.3 Scrapy-Redis運(yùn)作流程 242
11.4 Scrapy-Redis開發(fā)準(zhǔn)備 242
11.4.1 安裝Scrapy-Redis 242
11.4.2 修改配置文件 243
11.4.3 測試遠(yuǎn)程連接 244
11.5 Scrapy-Redis的基本操作 246
11.5.1 新建Scrapy-Redis項目 246
11.5.2 明確采集目標(biāo) 247
11.5.3 制作爬蟲 248
11.5.4 運(yùn)行爬蟲 249
11.5.5 使用管道存儲數(shù)據(jù) 250
11.6 實踐項目:使用RedisCrawlSpider采集暢購商城的華為手表信息 252
【項目目標(biāo)】 252
【項目分析】 252
【項目實現(xiàn)】 252
11.7 本章小結(jié) 257
11.8 習(xí)題 257