Python爬蟲在學(xué)習(xí)中整理的一些小技巧

序言

如果你對工作不滿意或?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跟蹤而儲存在用戶本地終端上的數(shù)據(jù)(通常經(jīng)過加密),python提供了cookielib模塊用于處理cookies,cookielib模塊的主要作用是提供可存儲cookie的對象,以便于與urllib2模塊配合使用來訪問Internet資源。

偽裝成瀏覽器

某些網(wǎng)站反感爬蟲的到訪,于是對爬蟲一律拒絕請求。所以用urllib2直接訪問網(wǎng)站經(jīng)常會(huì)出現(xiàn)HTTP Error 403: Forbidden的情況對有些 header 要特別留意,服務(wù)端會(huì)針對這些 header 做檢查。

  1. User-Agent 有些服務(wù)端或 Proxy 會(huì)檢查該值,用來判斷是否是瀏覽器發(fā)起的 Request;
  2. Content-Type 在使用 REST 接口時(shí),服務(wù)端會(huì)檢查該值,用來確定 HTTP Body 中的內(nèi)容該怎樣解析。

頁面解析

對于頁面解析最強(qiáng)大的當(dāng)然是正則表達(dá)式。其次就是解析庫了,常用的有兩個(gè) lxml 和 BeautifulSoup,對于這兩個(gè)庫,我的評價(jià)是,都是HTML/XML的處理庫。

  1. Beautifulsoup是純python實(shí)現(xiàn)的,效率雖然低一些,但是功能實(shí)用,比如:它可以通過結(jié)果搜索獲得某個(gè)HTML節(jié)點(diǎn)的源碼這樣的;
  2. lxml 底層是由C語言編碼的,比較高效,支持Xpath。

驗(yàn)證碼的處理

對于一些簡單的驗(yàn)證碼,可以進(jìn)行簡單的識別。本人也只進(jìn)行過一些簡單的驗(yàn)證碼識別。但是有些反人類的驗(yàn)證碼,比如12306,可以通過打碼平臺進(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ù)。

如果本文對你學(xué)習(xí)有所幫助-可以點(diǎn)贊??+ 關(guān)注 + 打賞!將持續(xù)更新更多新的文章。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容