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

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

《Python爬蟲開發實戰教程(微課版)》是2020年人民郵電出版社出版的圖書,作者是蝸牛學院、卿淳俊、鄧強。

基本介紹

  • 書名:Python爬蟲開發實戰教程(微課版)
  • 作者:蝸牛學院
    卿淳俊
    鄧強
  • 出版社:人民郵電出版社
  • ISBN:9787115527882
內容簡介,圖書目錄,作者簡介,

內容簡介

本書以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公司。教學思路嚴謹,原理講解透徹。
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公司。教學思路嚴謹,原理講解透徹。

相關詞條

熱門詞條

聯絡我們