在這篇文章之前,很多人應該看過很多關于建立代理ip池的文章,然后發現都是坑,不能用。多說點。
不說第一種方法,真的有好幾個代理IPs(別問我誰的好,我不知道,我寫這篇文章是為了推廣我自己寫的項目)。
第二,github上的這類項目已經出海了,而且大部分都是,你建好之后,發現爬蟲還是爬不動,免費的代理ip根本用不上!好一點的haipproxy,我也用過,但是沒有解決根本問題!大多數ip故障太快!而各種錯誤,爬十頁,能成功就是燒香。
那么,為什么免費代理ip不起作用呢?很多人也問,那些ip代理真的有那么多IP嗎?
實際上,很多免費的代理IP被掃描出來,掃描IP段、端口和特征碼。發現可以用的,也就是代理ip。
代理ip不容易使用,這一般是由于以下原因:1。掃描的代理ip是臨時的;2.訪問量太大,服務器死了;3.原來不是代理IP;4.有認證;5.它本來就是http的代理,你用它來訪問https,當然不行!6.代理異常,連接中斷,帶寬被污染,并返回錯誤。
如果不想花錢,只能自己找一個穩定的代理ip,然后使用。而總代理池,他們都是用百度、知乎、豆瓣的網站訪問,說明可以用,但是失敗了。最多加個分算點什么。
之前看過haipproxy的代碼,成功率高的話還得自己寫驗證。說白了就是在爬蟲使用之前,盡量去訪問,提高成功率。我覺得意義不大。
以上都是廢話,以下是主要的。事實上,一些免費的代理ip是非常穩定的代理服務器,所以這些服務器可以使用很長時間。
在我抓取的免費代理ip中,過濾后剩余ip的訪問成功率基本為90%+。
首先,其實最簡單的方法就是根據服務器的開放端口來判斷。如果服務器有80、3389、3306、22等開放端口,說明服務器上還有其他服務在運行,掛機的概率很小。如果是政府或者學校的服務器,就更穩定了。當然,也可以開放其他端口。
第二,是判斷服務器的訪問速度,需要訪問幾個不同的網站才能得到平均值,這樣訪問速度相對穩定。
第三,代理ip的壽命越長,越穩定。當然,這是在你構建和抓取它之后計算出來的。
第四,重新檢測代理類型。通過訪問不同的http和https網站,判斷代理是http還是https,并進行劃分。訪問http網站時使用http的代理,https的代理為https訪問提供服務,可以提高訪問概率。
因此,根據這幾點,我重寫了一套代理ip池項目。目前我抓取ip 450,長期穩定的ip在6左右。雖然很少,但相當穩定。