發表於2024-11-22
書名: | Python爬蟲開發與項目實戰|5894193 |
圖書定價: | 79元 |
圖書作者: | 範傳輝 |
齣版社: | 機械工業齣版社 |
齣版日期: | 2017/6/1 0:00:00 |
ISBN號: | 9787111563877 |
開本: | 16開 |
頁數: | 0 |
版次: | 1-1 |
作者簡介 |
範傳輝,資深網蟲,Python開發者,參與開發瞭多項網絡應用,在實際開發中積纍瞭豐富的實戰經驗,並善於總結,貢獻瞭多篇技術文章廣受好評。研究興趣是網絡安全、爬蟲技術、數據分析、驅動開發等技術。 "}) |
內容簡介 |
隨著大數據時代到來,網絡信息量也變得更多更大,基於傳統搜索引擎的局限性,網絡爬蟲應運而生,本書從基本的爬蟲原理開始講解,通過介紹Pthyon編程語言和Web前端基礎知識引領讀者入門,之後介紹動態爬蟲原理以及Scrapy爬蟲框架,最後介紹大規模數據下分布式爬蟲的設計以及PySpider爬蟲框架等。 主要特點: l 由淺入深,從Python和Web前端基礎開始講起,逐步加深難度,層層遞進。 l 內容詳實,從靜態網站到動態網站,從單機爬蟲到分布式爬蟲,既包含基礎知識點,又講解瞭關鍵問題和難點分析,方便讀者完成進階。 l 實用性強,本書共有9個爬蟲項目,以係統的實戰項目為驅動,由淺及深地講解爬蟲開發中所需的知識和技能。 難點詳析,對js加密的分析、反爬蟲措施的突破、去重方案的設計、分布式爬蟲的開發進行瞭細緻的講解。 |
目錄 |
前言 基礎篇 第1章 迴顧Python編程2 1.1 安裝Python2 1.1.1 Windows上安裝Python2 1.1.2 Ubuntu上的Python3 1.2 搭建開發環境4 1.2.1 Eclipse+PyDev4 1.2.2 PyCharm10 1.3 IO編程11 1.3.1 文件讀寫11 1.3.2 操作文件和目錄14 1.3.3 序列化操作15 1.4 進程和綫程16 1.4.1 多進程16 1.4.2 多綫程22 1.4.3 協程25 1.4.4 分布式進程27 1.5 網絡編程32 1.5.1 TCP編程33 1.5.2 UDP編程35 1.6 小結36 第2章 Web前端基礎37 2.1 W3C標準37 2.1.1 HTML37 2.1.2 CSS47 2.1.3 51 2.1.4 XPath56 2.1.5 JSON61 2.2 HTTP標準61 2.2.1 HTTP請求過程62 2.2.2 HTTP狀態碼含義62 2.2.3 HTTP頭部信息63 2.2.4 Cookie狀態管理66 2.2.5 HTTP請求方式66 2.3 小結68 第3章 初識網絡爬蟲69 3.1 網絡爬蟲概述69 3.1.1 網絡爬蟲及其應用69 3.1.2 網絡爬蟲結構71 3.2 HTTP請求的Python實現72 3.2.1 urllib2/urllib實現72 3.2.2 httplib/urllib實現76 3.2.3 更人性化的Requests77 3.3 小結82 第4章 HTML解析大法83 4.1 初識Firebug83 4.1.1 安裝Firebug84 4.1.2 強大的功能84 4.2 正則錶達式95 4.2.1 基本語法與使用96 4.2.2 Python與正則102 4.3 強大的BeautifulSoup108 4.3.1 安裝BeautifulSoup108 4.3.2 BeautifulSoup的使用109 4.3.3 lxml的XPath解析124 4.4 小結126 第5章 數據存儲(無數據庫版)127 5.1 HTML正文抽取127 5.1.1 存儲為JSON127 5.1.2 存儲為CSV132 5.2 多媒體文件抽取136 5.3 Email提醒137 5.4 小結138 第6章 實戰項目:基礎爬蟲139 6.1 基礎爬蟲架構及運行流程140 6.2 URL管理器141 6.3 HTML下載器142 6.4 HTML解析器143 6.5 數據存儲器145 6.6 爬蟲調度器146 6.7 小結147 第7章 實戰項目:簡單分布式爬蟲148 7.1 簡單分布式爬蟲結構148 7.2 控製節點149 7.2.1 URL管理器149 7.2.2 數據存儲器151 7.2.3 控製調度器153 7.3 爬蟲節點155 7.3.1 HTML下載器155 7.3.2 HTML解析器156 7.3.3 爬蟲調度器157 7.4 小結159 中級篇 第8章 數據存儲(數據庫版)162 8.1 SQLite162 8.1.1 安裝SQLite162 8.1.2 SQL語法163 8.1.3 SQLite增刪改查168 8.1.4 SQLite事務170 8.1.5 Python操作SQLite171 8.2 MySQL174 8.2.1 安裝MySQL174 8.2.2 MySQL基礎177 8.2.3 Python操作MySQL181 8.3 更適閤爬蟲的MongoDB183 8.3.1 安裝MongoDB184 8.3.2 MongoDB基礎187 8.3.3 Python操作MongoDB194 8.4 小結196 第9章 動態網站抓取197 9.1 Ajax和動態HTML197 9.2 動態爬蟲1:爬取影評信息198 9.3 PhantomJS207 9.3.1 安裝PhantomJS207 9.3.2 快速入門208 9.3.3 屏幕捕獲211 9.3.4 網絡監控213 9.3.5 頁麵自動化214 9.3.6 常用模塊和方法215 9.4 Selenium218 9.4.1 安裝Selenium219 9.4.2 快速入門220 9.4.3 元素選取221 9.4.4 頁麵操作222 9.4.5 等待225 9.5 動態爬蟲2:爬取去哪網227 9.6 小結230 第10章 Web端協議分析231 10.1 網頁登錄POST分析231 10.1.1 隱藏錶單分析231 10.1.2 加密數據分析234 10.2 驗證碼問題246 10.2.1 IP代理246 10.2.2 Cookie登錄249 10.2.3 傳統驗證碼識彆250 10.2.4 人工打碼251 10.2.5 滑動驗證碼252 10.3 www>m>wap252 10.4 小結254 第11章 終端協議分析255 11.1 PC客戶端抓包分析255 11.1.1 HTTP Analyzer簡介255 11.1.2 蝦米音樂PC端API實戰分析257 11.2 App抓包分析259 11.2.1 Wireshark簡介259 11.2.2 酷我聽書App端API實戰分析266 11.3 API爬蟲:爬取mp3資源信息268 11.4 小結272 第12章 初窺Scrapy爬蟲框架273 12.1 Scrapy爬蟲架構273 12.2 安裝Scrapy275 12.3 創建cnblogs項目276 12.4 創建爬蟲模塊277 12.5 選擇器278 12.5.1 Selector的用法278 12.5.2 HTML解析實現280 12.6 命令行工具282 12.7 定義Item284 12.8 翻頁功能286 12.9 構建Item Pipeline287 12.9.1 定製Item Pipeline287 12.9.2 激活Item Pipeline288 12.10 內置數據存儲288 12.11 內置圖片和文件下載方式289 12.12 啓動爬蟲294 12.13 強化爬蟲297 12.13.1 調試方法297 12.13.2 異常299 12.13.3 控製運行狀態300 12.14 小結301 第13章 深入Scrapy爬蟲框架302 13.1 再看Spider302 13.2 Item Loader308 13.2.1 Item與Item Loader308 13.2.2 輸入與輸齣處理器309 13.2.3 Item Loader Context310 13.2.4 重用和擴展Item Loader311 13.2.5 內置的處理器312 13.3 再看Item Pipeline314 13.4 請求與響應315 13.4.1 Request對象315 13.4.2 Response對象318 13.5 下載器中間件320 13.5.1 激活下載器中間件320 13.5.2 編寫下載器中間件321 13.6 Spider中間件324 13.6.1 激活Spider中間件324 13.6.2 編寫Spider中間件325 13.7 擴展327 13.7.1 配置擴展327 13.7.2 定製擴展328 13.7.3 內置擴展332 13.8 突破反爬蟲332 13.8.1 UserAgent池333 13.8.2 禁用Cookies333 13.8.3 設置下載延時與自動限速333 13.8.4 代理IP池334 13.8.5 Tor代理334 13.8.6 分布式下載器:Crawlera337 13.8.7 Google cache338 13.9 小結339 第14章 實戰項目:Scrapy爬蟲340 14.1 創建知乎爬蟲340 14.2 定義Item342 14.3 創建爬蟲模塊343 14.3.1 登錄知乎343 14.3.2 解析功能345 14.4 Pipeline351 14.5 優化措施352 14.6 部署爬蟲353 14.6.1 Scrapyd354 14.6.2 Scrapyd-client356 14.7 小結357 深入篇 第15章 增量式爬蟲360 15.1 去重方案360 15.2 BloomFilter算法361 15.2.1 BloomFilter原理361 15.2.2 Python實現BloomFilter363 15.3 Scrapy和BloomFilter364 15.4 小結366 第16章 分布式爬蟲與Scrapy367 16.1 Redis基礎367 16.1.1 Redis簡介367 16.1.2 Redis的安裝和配置368 16.1.3 Redis數據類型與操作372 16.2 Python和Redis375 16.2.1 Python操作Redis375 16.2.2 Scrapy集成Redis384 16.3 MongoDB集群385 16.4 小結390 第17章 實戰項目:Scrapy分布式爬蟲391 17.1 創建雲起書院爬蟲391 17.2 定義Item393 17.3 編寫爬蟲模塊394 17.4 Pipeline395 17.5 應對反爬蟲機製397 17.6 去重優化400 17.7 小結401 第18章 人性化PySpider爬蟲框架403 18.1 PySpider與Scrapy403 18.2 安裝PySpider404 18.3 創建豆瓣爬蟲405 18.4 選擇器409 18.4.1 PyQuery的用法409 18.4.2 解析數據411 18.5 Ajax和HTTP請求415 18.5.1 Ajax爬取415 18.5.2 HTTP請求實現417 18.6 PySpider和PhantomJS417 18.6.1 使用PhantomJS418 18.6.2 運行420 18.7 數據存儲420 18.8 PySpider爬蟲架構422 18.9 小結423 |