1伴榔、什么是爬蟲僵井?
爬蟲就是將網(wǎng)絡(luò)中非結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)化為結(jié)構(gòu)化數(shù)據(jù)的工具礁击。
通俗來(lái)講:將網(wǎng)頁(yè)數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)過(guò)程盐杂。
2、爬蟲的分類
????a) ? ?通用爬蟲????VS ? ?聚焦爬蟲
i)通用爬蟲:一般用在搜索引擎中,針對(duì)所有數(shù)據(jù)進(jìn)行廣泛采集[廣度]
ii)聚焦爬蟲:也稱為定向爬蟲哆窿,針對(duì)目標(biāo)數(shù)據(jù)進(jìn)行定向數(shù)據(jù)采集[深度]
????b) ? ?累計(jì)爬蟲 ? ?VS ? ?增量爬蟲
i)累積爬蟲:歷史數(shù)據(jù)不會(huì)發(fā)生變化链烈,一旦數(shù)據(jù)執(zhí)行完成,數(shù)據(jù)就是固定的
ii)增量爬蟲:需要實(shí)時(shí)對(duì)歷史采集數(shù)據(jù)進(jìn)行更新[歷史數(shù)據(jù)會(huì)發(fā)生變化]
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ù)的訪問(wèn)
????????????i. ? ?免費(fèi)代理|收費(fèi)代理?[透明代理|匿名代理|高匿代理]
????????????ii. ? ?正向代理|反向代理
1)正向代理:代理客戶端發(fā)起請(qǐng)求目胡,向服務(wù)器請(qǐng)求數(shù)據(jù);隱藏客戶端信息
2)反向代理:代理的服務(wù)端链快;隱藏真實(shí)服務(wù)器信息
????????????iii. ? ?urlopen底操作
????????????????????1. ? ?操作對(duì)象:urllib2.ProxyHandler({...})
? ? ????????????????2. ? ?開鎖對(duì)象:urllib2.build_open(hander)
????????????????????3. ? ?發(fā)送請(qǐng)求:res =opener.open(url)