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