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

weixin_39922476發表於2020-11-11

商品詳情

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

定價:49.8

ISBN:9787115527882

作者:蝸牛學院 卿淳俊 鄧強

版次:*1版

出版時間:2020-06

內容提要:

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

作者簡介:

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

目錄:

第 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

相關文章