引言
最近在學習python,先說一下我學Python得原因,一個是因為它足夠好用,完成同樣的功能,代碼量會比其他語言少很多,有大量的豐富的庫可以使用,基本上前期根本不需要自己造什么輪子。第二個是因為目前他很火,網上各種資料都比較豐富,且質量尚可。接下來不如正題
在學習Python爬蟲的時候,經常會遇見所要爬取的網站采取了反爬取技術導致爬取失敗。高強度、高效率地爬取網頁信息常常會給網站服務器帶來巨大壓力,所以同一個IP反復爬取同一個網頁,就很可能被封,這里講述一個爬蟲技巧,設置代理IP
為什么需要代理
提到python,雖然他能干的事情很多,但是我們首先想起的一般都是爬蟲。爬蟲的作用是通過抓取網頁,分析并獲得網頁中的內容。像php這類語言也是可以用curl來達到爬蟲的效果,不過論爬蟲庫的數量和易用性就沒辦法和python相比了。
對網絡知識有了解的朋友應該知道,很多網站都有反爬蟲的策略,或者是針對同一ip地址頻繁請求會拒絕服務,我在剛開始寫一些東西的時候就經常因為訪問的頻率太頻繁而被禁。所以說僅用自己的ip地址進行爬取是有一定的局限性的。而代理就可以解決這個問題。
代理是什么
作為一個程序員我覺得有必要了解一些基本的網絡知識,比如說網絡代理。
我不想從哪里復制粘貼一段介紹過來,因為我覺得那樣很low,我說說我理解的網絡代理。
如果你不了解代理,你應該知道代購吧,比如你想買一個東西,卻不想自己跑去買,可以找一個代理幫你去買。類似的,網絡代理也是在你和目的網絡之間的一個中轉方。類似如下圖
Alice->agency(代理): I want to get sth from Bob
agency(代理)->Bob: give me sth
Note right of Bob: Bob thinks
Bob-->agency(代理): there is sth!
agency(代理)-->Alice: bob give you sth
這里有一個問題是,普通代理是比較好檢測出來的,有些網站不允許使用代理訪問。這時候可以使用高匿代理可以解決這個問題。關于代理不多說了,有興趣的可以自己去了解。
從哪里獲取代理
這問題就簡單了,直接百度搜索網絡代理可以搜索到很多免費的,免費的一般不太穩定,應付日常需求應該沒問題。如果需要穩定代理還是老老實實的花錢買付費的好一些,不要因小失大。
比如網上就經常推薦的代理
西祠代理:http://www.xicidaili.com/nn/
本文用的快代理:https://www.kuaidaili.com/
西祠我一開始也用了,后來因為頻繁訪問被禁用過一次,幾天后才解禁,在這期間我換成了快代理并去重寫了規則每小時獲取一次代理。
新聞熱點
疑難解答