Python快速入門的七個技巧。
1,基本網頁抓取
獲取方法
過帳方法
2.使用代理IP
在開發爬蟲的過程中,IP經常被屏蔽,所以需要。
代理IP;
urllib 2包中有壹個代理處理程序類,通過它可以設置代理。
訪問網頁,下面的代碼片段:
3.餅幹加工
壹些網站使用Cookies來識別用戶和跟蹤會話。
Python提供存儲在用戶本地終端的數據(通常是加密的)。
Cookie lib模塊用於處理Cookie,cookie lib模塊的主要工作是
它用於提供壹個可以存儲cookie的對象,以便於與urllib 2模塊的合作。
用於訪問互聯網資源。
代碼片段:
關鍵在於Cookie Jar(),它用於管理HTTP cookie值、存儲。
HTTP請求生成的cookie,將cookie添加到傳出的HTTP請求中
的對象。整個cookie存儲在內存中,並進入Cookie Jar實例
垃圾回收後Cookie也會丟失,所有進程都不需要單獨操作。
手動添加cookie:
4.假裝成壹個瀏覽器
有些網站不喜歡爬蟲的訪問,所以都拒絕了對爬蟲的請求。所以使用
urllib 2直接訪問網站時經常出現HTTP錯誤403:
禁止的情況。
特別註意壹些頭,服務器會針對這些頭。
做檢查:
1.壹些服務器或代理會檢查這個值來判斷。
瀏覽器是否發起了請求。
2.當使用REST接口時,服務器將檢查。
用於確定如何解析HTTP正文中的內容的值。
這可以通過修改http包中的頭來實現。代碼片段如下。
5、驗證碼處理
對於壹些簡單的驗證碼,可以進行簡單的識別。我們只做過壹次。
壹些簡單的驗證碼,但是壹些反人類的驗證碼,比如12306。
,可以通過編碼平臺手動編碼,當然這是要收費的。
6.gzip壓縮
妳有沒有遇到過壹些網頁?不管怎麽轉碼,都是亂碼。哈哈,那個
說明妳不知道很多web服務都有發送壓縮數據的能力,可以是
從而將網絡線路上傳輸的大量數據減少60%以上。這尤其適用於
XML web服務,因為XML數據的壓縮率可以非常高。
但是壹般服務器不會為您發送壓縮數據,除非您告訴服務器您可以這樣做
來處理壓縮數據。
因此,您需要像這樣修改代碼:
這是關鍵:創建壹個請求對象,添加壹個接受-
編碼頭信息告訴服務器您可以接受gzip壓縮數據。
然後是數據的解壓縮:
7.多線程並發獲取
如果單線程太慢,就需要多線程。下面是壹個簡單的線程池模板。
這個程序只是簡單的打印1-10,但是可以看出是並發的。
Python的多線程雖然是雞肋,但是對於網絡頻繁的爬蟲來說,難度很大。
,還能在壹定程度上提高效率。