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