Python爬蟲開發實戰教程(微課版)

Python爬蟲開發實戰教程(微課版)

作者: 蝸牛學院 卿淳俊 鄧強
出版社: 人民郵電
出版在: 2020-06-01
ISBN-13: 9787115527882
ISBN-10: 7115527881
裝訂格式: 平裝
總頁數: 222 頁





內容描述


本書以Python語言為基礎描述了網絡爬蟲的基礎知識,用大量實際案例及代碼,
向讀者介紹了編寫網絡爬蟲所需要的相關知識要點及項目實踐的相關技巧。
本書共5章,介紹了爬蟲的基本結構及工作流程、抓包工具、模擬網絡請求、網頁解析、
去重策略、常見反爬措施,以及大型商業爬蟲框架Scrapy的應用,最後介紹了數據分析及可視化的相關基礎知識。


目錄大綱


第 1章 靜態網頁爬蟲 1
1.1 爬蟲的基本概念和工作原理 2
1.1.1 什麼是網絡爬蟲 2
1.1.2 爬蟲的結構與工作流程 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發送GET請求 22
1.3.3 在GET請求中添加參數 29
1.3.4 發送POST請求 29
1.3.5 獲取請求的狀態碼 30
1.3.6 指定請求時使用的headers及動態更新headers 31
1.3.7 指定Cookies和動態更新Cookies 32
1.3.8 使用session對象保持會話狀態 34
1.4 網頁解析利器XPath、CSS-Selector和正則表達式語法 35
1.4.1 XPath的基本語法及使用 35
1.4.2 常見相對路徑引用 37
1.4.3 XPath進階應用 38
1.4.4 CSS-Selector的基本語法及使用 40
1.4.5 正則表達式的基本語法及使用 41
1.5 常見爬蟲爬取策略 43
1.5.1 寬度優先搜索策略 44
1.5.2 深度優先搜索策略 45
1.6 常見網頁URL和內容去重策略 48
1.6.1 去重策略的使用場景 48
1.6.2 常見爬蟲去重策略 48
1.6.3 BloomFilter算法 49
1.6.4 內容去重策略的實現 52
1.7 實戰:編寫一個基於靜態網頁的爬蟲 52
第 2章 常見反爬措施及解決方案 65
2.1 常見反爬手段——身份驗證 66
2.1.1 使用登錄的Cookies獲取數據 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 常見反爬手段——速度、數量限制 87
2.3.1 服務器對速度、數量限制反爬的原理和手段 87
2.3.2 針對反爬限速、頻次限制的突破手段 87
2.4 自己動手搭建IP代理池 88
2.4.1 創建IP代理池的基本要求 89
2.4.2 IP代理池基本架構 89
2.4.3 相關組件的安裝 90
2.4.4 同步I/O和異步I/O的概念和區別 97
2.4.5 在Python中如何實現異步I/O 98
2.5 常見反爬手段——異步動態請求 105
2.6 常見反爬手段——JS加密請求參數 110
第3章 自己動手編寫一個簡單的爬蟲框架 122
3.1 簡單爬蟲框架的結構 123
3.2 編寫URL管理器 124
3.3 編寫資源下載器 125
3.4 編寫HTML解析器 126
3.5 編寫資源存儲器 128
3.6 編寫爬蟲調度器 128
第4章 Scrapy框架應用 131
4.1 Scrapy的相關概念與原理 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 創建第 一個Scrapy項目 137
4.3.1 創建Scrapy項目 137
4.3.2 Scrapy項目的結構 137
4.3.3 定義爬蟲文件 138
4.4 在PyCharm中運行和調試Scrapy項目 142
4.4.1 在PyCharm中運行Scrapy項目 143
4.4.2 在PyCharm中調試Scrapy項目 144
4.5 使用Scrapy進行請求間數據傳遞 146
4.6 Scrapy命令行用法詳解 152
4.7 常用Scrapy組件的用法 160
4.7.1 定義數據Item 160
4.7.2 利用Item Pipeline將數據持久化 162
4.7.3 編寫Item Pipeline 163
4.7.4 中間件的用法 173
4.8 Scrapy中對同一項目不同的Spider啟用不同的配置 178
4.9 Scrapy分佈式爬蟲的運行原理 182
4.9.1 實現多機分佈式爬取的關鍵 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 運行環境準備 190
4.10.2 修改Scrapy項目配置及相關源碼 191
4.10.3 部署到不同的從機中 192
4.10.4 其他可選配置參數 192
第5章 爬蟲數據分析及可視化 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的常用設置 198
5.1.6 Highcharts庫的安裝和配置 198
5.2 熟悉Jupyter Notebook的基本用法 199
5.2.1 創建一個新的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屬性設置 207
5.4 利用Jupyter Notebook和Highcharts實現數據分析和展示 209
5.4.1 數據分析的流程 210
5.4.2 數據分析實踐 210
5.5 利用詞云實現可視化效果 213
5.5.1 jieba分詞器 213
5.5.2 jieba分詞器的特點及安裝方法 214
5.5.3 wordcloud詞云組件 215
5.5.4 利用蝸牛筆記數據生成詞云 218
參考文獻 222


作者介紹


卿淳俊
蝸牛學院資深講師,16年IT行業工作經驗。
曾就職於Nokia、Tieto等知名外企,擔任項目管理、高級工程師職位,負責軟件測試、軟件研發等工作。
精通各類開發及測試工具、框架設計與實現,尤其擅長電商、大數據領域的項目。
曾作為行業特邀專家與四川省質量技術監督局共同起草了四川省質量標准文件
《移動智能終端應用軟件(APP)產品通用技術要求及測試規範》。
隨著數據科學領域的發展,近幾年在Python爬蟲、數據分析、人工智能領域也積累了豐富的實戰經驗。
教學風格深入淺出,思路嚴謹,並堅持“授人以魚不如授人以漁”的原則,培養了大量優秀行業人才。
 
鄧強
蝸牛學院創始人,獨立諮詢顧問,資深企業內訓講師,四川大學碩士,16年軟件研發及管理經驗。
精通各種開發和測試技術,具有豐富的項目實施經驗和研發管理經驗。
曾為深圳移動,
大唐軟件,華夏基金,聯想集團,第九城市等20餘家企業提供技術諮詢、項目實施及內訓服務。
出版技術類圖書近10本,覆蓋Web前端開發、Java、PHP、Python開發,以及自動化測試開發等領域。
從事培訓事業以來學生數万,遍布國內外各大IT公司。
教學思路嚴謹,原理講解透徹




相關書籍

用Kittenblock(基於Scratch 3.0)學人工智能 圖形化編程 AI 硬件交互

作者 KittenBot

2020-06-01

Applied Neural Networks with Tensorflow 2: API Oriented Deep Learning with Python

作者 Yalçın Orhan Gazi

2020-06-01

Expert Data Modeling with Power BI: Get the best out of Power BI by building optimized data models for reporting and business needs

作者 Bakhshi Soheil

2020-06-01