課程描述
本課程主要針對有一定python編程經驗的研發人員,講解python編寫網絡爬蟲的相關知識,主要內容有爬蟲的本質剖析,從頁面中爬取數據的三種方法,如何緩存抓取數據以及提取數據,并行爬蟲,如何抓取動態頁面內容;與表單的交互;處理頁面中的驗證碼;使用Scarpy編寫爬蟲;網站爬蟲封禁的突破策略;抓取到的數據可視化分析;
本課程內容豐富,講解由淺入深,并始終以一線開發經驗貫穿始終。通過本課程的學習,可使得學員對Python爬蟲開發有一個很好的掌握和了解。
課程內容:
1、網絡爬蟲技術入門
“爬蟲”的概念和本質
網絡爬蟲的實用價值
網絡爬蟲的法律約束
為什么選擇Python做爬蟲開發語言
Python的包管理工具-pip
編寫一個網絡爬蟲
ro******xt介紹
爬蟲一:網頁下載
【案例】網站地圖爬蟲
【案例】遍歷Id爬蟲
【案例】鏈接爬蟲
2、網頁內容(數據)的抓取
網頁的分析
FireBug Lite等工具
爬蟲技術三種網頁內容抓取方式
正則表達式
Beautiful Soup
Lxml:CSS選擇器抓取
【討論】三種抓取方式的優劣對比
【案例】為一個爬蟲增加抓取功能
3、數據庫緩存爬蟲下載緩存
爬蟲添加下載緩存的必要性
為鏈接爬蟲添加緩存支持
緩存文件
文件系統限制
文件緩存實現(包含異常處理)
文件緩存測試的執行
使用zlib壓縮緩存
清理過期文件緩存數據
文件緩存緩存缺陷
【案例】文件緩存實現
爬蟲開發緩存選擇NoSQL的理由
典型的NoSQL-MongoDB技術概述
MongoDB緩存實現
MongoDB數據壓縮
MongoDB緩存測試
【案例】MongoDB緩存實現
4、100萬個網頁以上規模的網站數據抓取-并行爬蟲
常規串行爬蟲的特性
爬蟲線程和進程的工作原理
多線程爬蟲
多進程爬蟲
性能分析
【案例】多線程爬蟲
【案例】多進程爬蟲
5、JavaScript動態頁面的爬蟲技術
動態頁面示例
對動態網頁執行逆向工程
分析頁面加載數據的過程
python的Ajax調用
邊界優化
【案例】動態網頁的逆向
使用渲染引擎處理動態頁面
渲染引擎處理原理
包含WebKit的Python庫:PyQt
包含WebKit的Python庫:PySide
使用WebKit編程執行動態的JavaScript
使用WebKit與網站交互-自定義渲染規則
瀏覽器自動化API接口提供者-Selenium
【案例】PySide執行動態的JavaScript
【案例】Selenium運行動態JavaScript
6、表單交互
登陸表單
GET/POST
URLencode/URLdecode
header & cookie
如何突破使用cookie阻擋的網站
網絡機器人實現(網站內容自動更新功能)
高級Mechanize模塊實現自動化表單處理
【案例】表單登陸
7、CAPTCHA(登陸驗證碼)處理
注冊賬號的關鍵控制環節
加載驗證碼圖像
常規驗證碼圖像處理-OCR(光學字符識別)
Tesseract OCR引擎
閥值化
OCR優化
【案例】OCR驗證碼圖像處理
非常規的復雜驗證碼圖像處理-9KW
復雜驗證碼圖像處理服務概述
9KW入門
集成注冊功能
【案例】調用9KW服務進行驗證碼圖像處理
8、網絡爬蟲框架Scrapy(快速編寫spider爬蟲)
Scrapy安裝
Scrapy框架的開發與使用
Scrapy框架爬蟲spider介紹
爬蟲項目默認結構生成-startproject
爬取內容模型設定
spider爬蟲創建
如何使用shell 命令抓取
spider爬蟲的中斷與恢復
【案例】使用Scrapy框架快速編寫爬蟲
基于Scrapy開發的可視化爬蟲工具-Portia
virtualenv 環境下的-Portia安裝過程
Portia的標注
優化Portia生成的爬蟲
【案例】使用Portia生成可視化爬蟲
使用Scrapely實現自動化抓取
9、爬蟲封禁的突破
ro******xt剖析
user agent
referrer
爬蟲封禁的突破技巧
【爬蟲實戰一】Google搜索引擎
【爬蟲實戰二】寶馬官網-抓取信息
10、爬行數據整理和可視化數據分析
CSV顯示
Matplotlib的圖形化顯示
iPython和pylad
圖型的初級繪制
默認配置的詳解
線條的控制
圖片邊界
記號
移動脊柱
圖例添加
注釋特殊點
圖像子圖坐標軸和記號
其他類型的圖
散點圖/條形圖/等高線圖
灰度圖/餅狀圖/量場圖
網格/多重網格
極軸圖/3D圖
JS可視化圖表hig******s.js
曲線圖
區域圖
餅圖
散點圖
氣泡圖
動態圖表
組合圖表
3D圖
測量圖
熱點圖
樹狀圖
【爬蟲數據可視化顯示】某商城商品銷售價格信息
11、復習本課程所有的內容
總結 討論和完整案例展