序言
如果你對工作不滿意或?qū)ι畈粷M意,請不用抱怨申屹,因?yàn)楹翢o用處,你只有努力提升技能隧膏,努力的完善自己哗讥,不斷地向前奔跑,才會(huì)越來越好的胞枕!
使用代理IP
開發(fā)爬蟲過程中經(jīng)常會(huì)遇到IP被封掉的情況杆煞,這時(shí)就需要用到代理IP;
在urllib2包中有個(gè)ProxyHandler類腐泻,通過此類可以設(shè)置代理訪問網(wǎng)頁决乎。
Cookies處理
cookies是某些網(wǎng)站為了辨別用戶身份、進(jìn)行session跟蹤而儲(chǔ)存在用戶本地終端上的數(shù)據(jù)(通常經(jīng)過加密)派桩,python提供了cookielib模塊用于處理cookies构诚,cookielib模塊的主要作用是提供可存儲(chǔ)cookie的對象,以便于與urllib2模塊配合使用來訪問Internet資源铆惑。
偽裝成瀏覽器
某些網(wǎng)站反感爬蟲的到訪唤反,于是對爬蟲一律拒絕請求。所以用urllib2直接訪問網(wǎng)站經(jīng)常會(huì)出現(xiàn)HTTP Error 403: Forbidden的情況對有些 header 要特別留意鸭津,服務(wù)端會(huì)針對這些 header 做檢查彤侍。
- User-Agent 有些服務(wù)端或 Proxy 會(huì)檢查該值,用來判斷是否是瀏覽器發(fā)起的 Request逆趋;
- Content-Type 在使用 REST 接口時(shí)盏阶,服務(wù)端會(huì)檢查該值,用來確定 HTTP Body 中的內(nèi)容該怎樣解析闻书。
頁面解析
對于頁面解析最強(qiáng)大的當(dāng)然是正則表達(dá)式名斟。其次就是解析庫了脑慧,常用的有兩個(gè) lxml 和 BeautifulSoup,對于這兩個(gè)庫砰盐,我的評(píng)價(jià)是闷袒,都是HTML/XML的處理庫。
- Beautifulsoup是純python實(shí)現(xiàn)的岩梳,效率雖然低一些囊骤,但是功能實(shí)用,比如:它可以通過結(jié)果搜索獲得某個(gè)HTML節(jié)點(diǎn)的源碼這樣的冀值;
- lxml 底層是由C語言編碼的也物,比較高效,支持Xpath列疗。
驗(yàn)證碼的處理
對于一些簡單的驗(yàn)證碼滑蚯,可以進(jìn)行簡單的識(shí)別。本人也只進(jìn)行過一些簡單的驗(yàn)證碼識(shí)別抵栈。但是有些反人類的驗(yàn)證碼告材,比如12306,可以通過打碼平臺(tái)進(jìn)行人工打碼古劲,當(dāng)然這是要付費(fèi)的斥赋。
gzip壓縮
大家有沒有遇到過某些網(wǎng)頁,不論你怎么轉(zhuǎn)碼都是一團(tuán)亂碼绢慢。
如果你遇到了灿渴,說明你還不知道目前許多web服務(wù)具有發(fā)送壓縮數(shù)據(jù)的能力洛波,這可以將網(wǎng)絡(luò)線路上傳輸?shù)拇罅繑?shù)據(jù)消減 60% 以上胰舆。尤其適用于 XML web 服務(wù),因?yàn)?XML 數(shù)據(jù)的壓縮率可以很高蹬挤。但是一般服務(wù)器不會(huì)為你發(fā)送壓縮數(shù)據(jù)缚窿,除非你告訴服務(wù)器你可以處理壓縮數(shù)據(jù)。