新型的代理ip池 github地址:?[aox_proxy_pool]
在這篇文章之前, 應(yīng)該不少人都看過(guò)很多搭建代理ip池的文章, 然后發(fā)現(xiàn)都是坑, 無(wú)法使用。說(shuō)的比較多的
1. **推薦買xx家的代理ip, 賊穩(wěn)定, 好使(廣告)**
2. **抓取xx免費(fèi)代理ip, 然后自己寫一個(gè)校驗(yàn), 然后寫一個(gè)api, 提供給爬蟲使用**
第一種方法就不說(shuō)了, 真的存在幾家不錯(cuò)的代理ip(別問(wèn)我誰(shuí)家的好, 我不知道, 我寫這篇文章就為了推銷我自己寫的項(xiàng)目好伐)
第二種, github上這種項(xiàng)目海了去了, 絕大部分, 在你搭建好以后, 發(fā)現(xiàn)爬蟲還是爬不動(dòng), 免費(fèi)代理ip根本無(wú)法使用的好伐!稍微好點(diǎn)的haipproxy, 我也用過(guò), 但是不解決根本問(wèn)題! 絕大部分ip失效太快了! 而且各種錯(cuò)誤, 爬十個(gè)頁(yè)面, 能成功一個(gè)都算燒高香了笤闯。
那么, 到底為啥免費(fèi)的代理ip不好使呢?
還有很多人都問(wèn)到, 那些代理ip商真的有那么多ip么俏蛮?
其實(shí)不是, 免費(fèi)代理ip很多都是掃出來(lái)的, 掃ip段, 端口, 特征碼憔披。發(fā)現(xiàn)可以使用, 那就是代理ip停蕉。
代理ip不好用, 一般是因?yàn)橐韵聨讉€(gè)原因
1. 掃到的代理ip是臨時(shí)的
2. 訪問(wèn)量太大, 服務(wù)器都掛了
3. 本來(lái)就不是代理ip
4. 有驗(yàn)證
5. 本來(lái)是http的代理, 你用來(lái)訪問(wèn)https, 那當(dāng)然不行了!
6. 代理異常, 連接中斷, 帶寬被沾滿, 返回錯(cuò)誤鸿吆。
如果不想花錢, 那么就只能自己找到穩(wěn)定的代理ip, 然后來(lái)使用隧膘。
而一般的代理池, 都是拿百度代态、知乎阿、豆瓣阿啥的網(wǎng)址訪問(wèn), 成了說(shuō)明能用, 不成就是失敗疹吃。最多加個(gè)分值計(jì)算什么的蹦疑。
之前看了下haipproxy的代碼, 成功率高就得自己寫驗(yàn)證, 說(shuō)白了, 在爬蟲使用之前, 先嘗試訪問(wèn)下, 來(lái)提高成功率, 我覺得意義不大。
**上面都廢話, 以下才是主要的**
其實(shí)免費(fèi)代理ip中, 有極少數(shù)的一部分, 是非常穩(wěn)定的代理服務(wù)器, 所以這些服務(wù)器就可以長(zhǎng)期用來(lái)使用萨驶。
我抓取到的免費(fèi)的代理ip, 中, 過(guò)濾后剩下的ip的訪問(wèn)成功率基本在90%+
第一歉摧、其實(shí)最簡(jiǎn)單的方式就是根據(jù)服務(wù)器開放的端口來(lái)判斷, 如果服務(wù)器有開放80, 3389, 3306, 22之類的端口, 那么說(shuō)明服務(wù)器還有別的服務(wù)在運(yùn)行, 掛掉的幾率很小, 如果是政府、學(xué)校的服務(wù)器, 那么更加穩(wěn)定。當(dāng)然也有可能開放別的端口
第二叁温、服務(wù)器的訪問(wèn)速度判斷, 需要訪問(wèn)多個(gè)不同的網(wǎng)址, 來(lái)取平均數(shù), 這樣的訪問(wèn)速度才比較穩(wěn)
第三再悼、代理ip的存活時(shí)間, 越長(zhǎng)越穩(wěn)定, 當(dāng)然這個(gè)是在你搭建抓取后, 來(lái)進(jìn)行計(jì)算。
第四膝但、代理類型的重新檢測(cè), 通過(guò)訪問(wèn)不同的http和https網(wǎng)站, 判斷代理到底是http還是https, 并且進(jìn)行劃分, http的代理, 那就訪問(wèn)http網(wǎng)址的時(shí)候使用, https的代理給https訪問(wèn)提供服務(wù), 這樣訪問(wèn)的幾率才能提高冲九。
所以根據(jù)這幾點(diǎn), 我重新寫了一套代理ip池的項(xiàng)目, 目前抓取ip 4500+, 長(zhǎng)期穩(wěn)定的ip在60+左右, 雖然少,但是相當(dāng)穩(wěn)定跟束。