Python爬蟲(chóng)開(kāi)發(fā)實(shí)戰(zhàn)教程(微課版)
定 價(jià):49.8 元
- 作者:蝸牛學(xué)院 卿淳俊 鄧強(qiáng)
- 出版時(shí)間:2020/5/1
- ISBN:9787115527882
- 出 版 社:人民郵電出版社
- 中圖法分類(lèi):TP311.561
- 頁(yè)碼:0
- 紙張:
- 版次:01
- 開(kāi)本:16K
本書(shū)以Python語(yǔ)言為基礎(chǔ)描述了網(wǎng)絡(luò)爬蟲(chóng)的基礎(chǔ)知識(shí),用大量實(shí)際案例及代碼,向讀者介紹了編寫(xiě)網(wǎng)絡(luò)爬蟲(chóng)所需要的相關(guān)知識(shí)要點(diǎn)及項(xiàng)目實(shí)踐的相關(guān)技巧。本書(shū)共5章,介紹了爬蟲(chóng)的基本結(jié)構(gòu)及工作流程、抓包工具、模擬網(wǎng)絡(luò)請(qǐng)求、網(wǎng)頁(yè)解析、去重策略、常見(jiàn)反爬措施,以及大型商業(yè)爬蟲(chóng)框架Scrapy的應(yīng)用,最后介紹了數(shù)據(jù)分析及可視化的相關(guān)基礎(chǔ)知識(shí)。
1.作者擁有多年軟件開(kāi)發(fā)經(jīng)驗(yàn),知識(shí)講解通俗易懂;
2.結(jié)合大量實(shí)踐代碼進(jìn)行講解,理論聯(lián)系實(shí)際;
3.全書(shū)重點(diǎn)難點(diǎn)配有微課視頻,書(shū)網(wǎng)結(jié)合;
4.體例結(jié)構(gòu)合理,由淺入深地向讀者介紹目前流行的網(wǎng)絡(luò)爬蟲(chóng)開(kāi)發(fā)技術(shù)。
卿淳俊,蝸牛學(xué)院資深講師,16年IT行業(yè)工作經(jīng)驗(yàn)。曾就職于Nokia、Tieto等知名外企,擔(dān)任項(xiàng)目管理、高級(jí)工程師職位,負(fù)責(zé)軟件測(cè)試、軟件研發(fā)等工作。精通各類(lèi)開(kāi)發(fā)及測(cè)試工具、框架設(shè)計(jì)與實(shí)現(xiàn),尤其擅長(zhǎng)電商、大數(shù)據(jù)領(lǐng)域的項(xiàng)目。曾作為行業(yè)特邀專(zhuān)家與四川省質(zhì)量技術(shù)監(jiān)督局共同起草了四川省質(zhì)量標(biāo)準(zhǔn)文件《移動(dòng)智能終端應(yīng)用軟件(APP)產(chǎn)品通用技術(shù)要求及測(cè)試規(guī)范》。隨著數(shù)據(jù)科學(xué)領(lǐng)域的發(fā)展,近幾年在Python爬蟲(chóng)、數(shù)據(jù)分析、人工智能領(lǐng)域也積累了豐富的實(shí)戰(zhàn)經(jīng)驗(yàn)。教學(xué)風(fēng)格深入淺出,思路嚴(yán)謹(jǐn),并堅(jiān)持“授人以魚(yú)不如授人以漁”的原則,培養(yǎng)了大量?jī)?yōu)秀行業(yè)人才。
鄧強(qiáng),蝸牛學(xué)院創(chuàng)始人,獨(dú)立咨詢(xún)顧問(wèn),資深企業(yè)內(nèi)訓(xùn)講師,四川大學(xué)碩士,16年軟件研發(fā)及管理經(jīng)驗(yàn)。精通各種開(kāi)發(fā)和測(cè)試技術(shù),具有豐富的項(xiàng)目實(shí)施經(jīng)驗(yàn)和研發(fā)管理經(jīng)驗(yàn)。曾為深圳移動(dòng),大唐軟件,華夏基金,聯(lián)想集團(tuán),第九城市等20余家企業(yè)提供技術(shù)咨詢(xún)、項(xiàng)目實(shí)施及內(nèi)訓(xùn)服務(wù)。出版技術(shù)類(lèi)圖書(shū)近10本,覆蓋Web前端開(kāi)發(fā)、Java、PHP、Python開(kāi)發(fā),以及自動(dòng)化測(cè)試開(kāi)發(fā)等領(lǐng)域。從事培訓(xùn)事業(yè)以來(lái)學(xué)生數(shù)萬(wàn),遍布國(guó)內(nèi)外各大IT公司。教學(xué)思路嚴(yán)謹(jǐn),原理講解透徹。
第 1章 靜態(tài)網(wǎng)頁(yè)爬蟲(chóng) 1
1.1 爬蟲(chóng)的基本概念和工作原理 2
1.1.1 什么是網(wǎng)絡(luò)爬蟲(chóng) 2
1.1.2 爬蟲(chóng)的結(jié)構(gòu)與工作流程 3
1.2 爬蟲(chóng)抓包分析 4
1.2.1 使用Chrome瀏覽器進(jìn)行抓包分析 4
1.2.2 使用Fiddler進(jìn)行抓包分析 11
1.3 Requests庫(kù)的基本使用方法 22
1.3.1 安裝Requests庫(kù) 22
1.3.2 通過(guò)Requests發(fā)送GET請(qǐng)求 22
1.3.3 在GET請(qǐng)求中添加參數(shù) 29
1.3.4 發(fā)送POST請(qǐng)求 29
1.3.5 獲取請(qǐng)求的狀態(tài)碼 30
1.3.6 指定請(qǐng)求時(shí)使用的headers及動(dòng)態(tài)更新headers 31
1.3.7 指定Cookies和動(dòng)態(tài)更新Cookies 32
1.3.8 使用session對(duì)象保持會(huì)話(huà)狀態(tài) 34
1.4 網(wǎng)頁(yè)解析利器XPath、CSS-Selector和正則表達(dá)式語(yǔ)法 35
1.4.1 XPath的基本語(yǔ)法及使用 35
1.4.2 常見(jiàn)相對(duì)路徑引用 37
1.4.3 XPath進(jìn)階應(yīng)用 38
1.4.4 CSS-Selector的基本語(yǔ)法及使用 40
1.4.5 正則表達(dá)式的基本語(yǔ)法及使用 41
1.5 常見(jiàn)爬蟲(chóng)爬取策略 43
1.5.1 寬度優(yōu)先搜索策略 44
1.5.2 深度優(yōu)先搜索策略 45
1.6 常見(jiàn)網(wǎng)頁(yè)URL和內(nèi)容去重策略 48
1.6.1 去重策略的使用場(chǎng)景 48
1.6.2 常見(jiàn)爬蟲(chóng)去重策略 48
1.6.3 BloomFilter算法 49
1.6.4 內(nèi)容去重策略的實(shí)現(xiàn) 52
1.7 實(shí)戰(zhàn):編寫(xiě)一個(gè)基于靜態(tài)網(wǎng)頁(yè)的爬蟲(chóng) 52
第 2章 常見(jiàn)反爬措施及解決方案 65
2.1 常見(jiàn)反爬手段——身份驗(yàn)證 66
2.1.1 使用登錄的Cookies獲取數(shù)據(jù) 66
2.1.2 模擬登錄請(qǐng)求 71
2.1.3 使用Selenium模擬登錄 74
2.2 常見(jiàn)反爬手段——驗(yàn)證碼 76
2.2.1 驗(yàn)證碼反爬原理 76
2.2.2 常見(jiàn)驗(yàn)證碼類(lèi)型 77
2.2.3 常見(jiàn)驗(yàn)證碼處理方式 77
2.3 常見(jiàn)反爬手段——速度、數(shù)量限制 87
2.3.1 服務(wù)器對(duì)速度、數(shù)量限制反爬的原理和手段 87
2.3.2 針對(duì)反爬限速、頻次限制的突破手段 87
2.4 自己動(dòng)手搭建IP代理池 88
2.4.1 創(chuàng)建IP代理池的基本要求 89
2.4.2 IP代理池基本架構(gòu) 89
2.4.3 相關(guān)組件的安裝 90
2.4.4 同步I/O和異步I/O的概念和區(qū)別 97
2.4.5 在Python中如何實(shí)現(xiàn)異步I/O 98
2.5 常見(jiàn)反爬手段——異步動(dòng)態(tài)請(qǐng)求 105
2.6 常見(jiàn)反爬手段——JS加密請(qǐng)求參數(shù) 110
第3章 自己動(dòng)手編寫(xiě)一個(gè)簡(jiǎn)單的爬蟲(chóng)框架 122
3.1 簡(jiǎn)單爬蟲(chóng)框架的結(jié)構(gòu) 123
3.2 編寫(xiě)URL管理器 124
3.3 編寫(xiě)資源下載器 125
3.4 編寫(xiě)HTML解析器 126
3.5 編寫(xiě)資源存儲(chǔ)器 128
3.6 編寫(xiě)爬蟲(chóng)調(diào)度器 128
第4章 Scrapy框架應(yīng)用 131
4.1 Scrapy的相關(guān)概念與原理 132
4.2 安裝Scrapy框架 134
4.2.1 在Windows中安裝Scrapy 134
4.2.2 在Linux中安裝Scrapy 136
4.2.3 在MacOS中安裝Scrapy 136
4.3 創(chuàng)建第 一個(gè)Scrapy項(xiàng)目 137
4.3.1 創(chuàng)建Scrapy項(xiàng)目 137
4.3.2 Scrapy項(xiàng)目的結(jié)構(gòu) 137
4.3.3 定義爬蟲(chóng)文件 138
4.4 在PyCharm中運(yùn)行和調(diào)試Scrapy項(xiàng)目 142
4.4.1 在PyCharm中運(yùn)行Scrapy項(xiàng)目 143
4.4.2 在PyCharm中調(diào)試Scrapy項(xiàng)目 144
4.5 使用Scrapy進(jìn)行請(qǐng)求間數(shù)據(jù)傳遞 146
4.6 Scrapy命令行用法詳解 152
4.7 常用Scrapy組件的用法 160
4.7.1 定義數(shù)據(jù)Item 160
4.7.2 利用Item Pipeline將數(shù)據(jù)持久化 162
4.7.3 編寫(xiě)Item Pipeline 163
4.7.4 中間件的用法 173
4.8 Scrapy中對(duì)同一項(xiàng)目不同的Spider啟用不同的配置 178
4.9 Scrapy分布式爬蟲(chóng)的運(yùn)行原理 182
4.9.1 實(shí)現(xiàn)多機(jī)分布式爬取的關(guān)鍵 182
4.9.2 源碼解讀之connection.py 184
4.9.3 源碼解讀之dupefilter.py 184
4.9.4 源碼解讀之pipelines.py 185
4.9.5 源碼解讀之queue.py 186
4.9.6 源碼解讀之scheduler.py 187
4.9.7 源碼解讀之spider.py 188
4.10 利用Scrapy+Redis進(jìn)行分布式爬蟲(chóng)
實(shí)踐 190
4.10.1 運(yùn)行環(huán)境準(zhǔn)備 190
4.10.2 修改Scrapy項(xiàng)目配置及相關(guān)源碼 191
4.10.3 部署到不同的從機(jī)中 192
4.10.4 其他可選配置參數(shù) 192
第5章 爬蟲(chóng)數(shù)據(jù)分析及可視化 193
5.1 安裝Jupyter Notebook和Highcharts庫(kù) 194
5.1.1 Jupyter Notebook 194
5.1.2 使用Jupyter Notebook的原因 195
5.1.3 Jupyter Notebook的安裝和配置 195
5.1.4 安裝過(guò)程中可能遇到的錯(cuò)誤 196
5.1.5 Jupyter Notebook的常用設(shè)置 198
5.1.6 Highcharts庫(kù)的安裝和配置 198
5.2 熟悉Jupyter Notebook的基本用法 199
5.2.1 創(chuàng)建一個(gè)新的Notebook文件 199
5.2.2 在Jupyter Notebook中運(yùn)行代碼 200
5.2.3 在Jupyter Notebook中編寫(xiě)Markdown格式文檔 202
5.3 熟悉Highcharts庫(kù)的基本用法 203
5.3.1 Highcharts的基本組成 203
5.3.2 Python charts庫(kù)的基本使用 204
5.3.3 charts的option屬性設(shè)置 207
5.4 利用Jupyter Notebook和Highcharts實(shí)現(xiàn)數(shù)據(jù)分析和展示 209
5.4.1 數(shù)據(jù)分析的流程 210
5.4.2 數(shù)據(jù)分析實(shí)踐 210
5.5 利用詞云實(shí)現(xiàn)可視化效果 213
5.5.1 jieba分詞器 213
5.5.2 jieba分詞器的特點(diǎn)及安裝方法 214
5.5.3 wordcloud詞云組件 215
5.5.4 利用蝸牛筆記數(shù)據(jù)生成詞云 218
參考文獻(xiàn) 222