1、什么是爬蟲?
爬蟲就是將網(wǎng)絡(luò)中非結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)化為結(jié)構(gòu)化數(shù)據(jù)的工具。
通俗來講:將網(wǎng)頁數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫過程。
2、爬蟲的分類
????a) ? ?通用爬蟲????VS ? ?聚焦爬蟲
????b) ? ?累計(jì)爬蟲 ? ?VS ? ?增量爬蟲
3、爬蟲的實(shí)現(xiàn)
????a) ? ?Java|Python|PHP|C++|Ruby|Dephil|.....
????b) ? ?Python :更專業(yè)
4、爬蟲的操作
????a) ? ?urllib2 底層數(shù)據(jù)采集urlopen()函數(shù)
????b) ? 偽造請(qǐng)求:偽造瀏覽器請(qǐng)求
????????????i. ? ?請(qǐng)求對(duì)象:請(qǐng)求頭數(shù)據(jù)、請(qǐng)求體數(shù)據(jù)、請(qǐng)求方式
? ? ? ? ? ? ii. ? ?請(qǐng)求頭中的User-agent設(shè)置,完成瀏覽器請(qǐng)求的偽裝
????????????iii. ? ?請(qǐng)求對(duì)象:urllib2.Reuqest對(duì)象
? ? c) ? ?模仿用戶行為:只有在特殊的情況下才會(huì)使用
? ? ? ? ? ? i. ? ?隨機(jī)休眠嚴(yán)重影響爬蟲采集數(shù)據(jù)的效率
? ? d) ? ?隱藏客戶端:使IP代理,代理真是客戶端完成對(duì)服務(wù)器數(shù)據(jù)的訪問
????????????i. ? ?免費(fèi)代理|收費(fèi)代理
????????????ii. ? ?正向代理|反向代理
????????????iii. ? ?urlopen底操作
????????????????????1. ? ?操作對(duì)象:urllib2.ProxyHandler({...})
? ? ????????????????2. ? ?開鎖對(duì)象:urllib2.build_open(hander)
????????????????????3. ? ?發(fā)送請(qǐng)求:res =opener.open(url)