1. 程式人生 > >如何搭建穩定的代理ip池, 供爬蟲使用

如何搭建穩定的代理ip池, 供爬蟲使用

什麽 git 免費 文章 存在 服務器 根據 代理服務器 如何

新型的代理ip池aox_proxy_pool

技術分享圖片

在這篇文章之前, 應該不少人都看過很多搭建代理ip池的文章, 然後發現都是坑, 無法使用。說的比較多的

  1. 推薦買xx家的代理ip, 賊穩定, 好使(廣告)
  2. 抓取xx免費代理ip, 然後自己寫一個校驗, 然後寫一個api, 提供給爬蟲使用

第一種方法就不說了, 真的存在幾家不錯的代理ip(別問我誰家的好, 我不知道, 我寫這篇文章就為了推銷我自己寫的項目好伐)

第二種, 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 4500+, 長期穩定的ip在60+左右, 雖然少,但是相當穩定。

如何搭建穩定的代理ip池, 供爬蟲使用