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