Golang實現的IP代理池
採集免費的代理資源為爬蟲提供有效的代理
專案地址: https://github.com/henson/ProxyPool
1、代理池設計
代理池由四部分組成:
- Getter:
代理獲取介面,目前有9個免費代理源,每呼叫一次就會抓取這些網站最新的100個代理放入Channel,可自行新增額外的代理獲取介面;
- Channel:
臨時存放採集來的代理,通過訪問穩定的網站去驗證代理的有效性,有效則存入資料庫;
- Schedule:
用定時的計劃任務去檢測資料庫中代理IP的可用性,刪除不可用的代理。同時也會主動通過Getter去獲取最新代理;
- Api:
代理池的訪問介面,提供get介面輸出JSON,方便爬蟲直接使用。
2、程式碼實現
- Api:
api介面相關程式碼,提供get
介面,輸出JSON;
- Storage:
資料庫相關程式碼,資料庫採用Mongo;
- Getter:
代理獲取介面,目前抓取這九個網站的免費代理,當然也支援自己擴充套件代理介面;
- Schedule:
定時任務,目前在main.go中以輪詢方式實現,後期會改進;
- Util:
存放一些公共的模組、方法或函式,包含Config
:讀取配置檔案config.json;
- 其他檔案:
配置檔案:config.json,資料庫配置和代理獲取介面配置;
{
"mongo": {
"addr": "mongodb://127.0.0.1:27017/",
"db": "temp",
"table": "pool"
},
"host": ":8080"
}
3、安裝及使用
因為有些代理網站使用了加密頁面、混淆程式碼等反爬技術,要正確採集到代理資料得用到 PhantomJS ,必須提前先裝好。
另外,本專案用到的依賴庫有:
gopkg.in/mgo.v2
github.com/PuerkitoBio/goquery
github.com/parnurzeal/gorequest
github.com/nladuo/go-phantomjs-fetcher
下載本專案:
go get -u github.com/henson/ProxyPool
然後配置好相應的config.json並啟動:
go build
./ProxyPool
隨機輸出可用的代理:
GET http://localhost:8080/v1/ip
隨機輸出HTTPS代理:
GET http://localhost:8080/v1/https
4、感謝
如果你喜歡本專案,請幫忙點個贊,謝謝!
相關文章
- Python 爬蟲IP代理池的實現Python爬蟲
- Python代理IP的使用和代理池的設定Python
- IPIDEA講述代理IP以及代理IP池的概念是什麼Idea
- PHP中的代理IP池操作指南PHP
- Golang協程池(workpool)實現Golang
- "什麼是海外代理IP池?共享IP池和獨享IP池有什麼不同?"
- golang實現抓取IP地址的蜘蛛程式Golang
- 自建代理IP池的三大優勢
- 代理Ip池構建及使用
- 如何建立爬蟲代理ip池爬蟲
- 爬蟲如何使用ip代理池爬蟲
- Golang 連線池的幾種實現案例Golang
- 技術分享:Proxy-Pool代理池搭建IP代理
- ip代理-Golang協程批次檢測代理線路Golang
- 瞭解海外IP池:海外IP代理的關鍵組成部分
- 手把手教你爬蟲代理ip池的建立爬蟲
- Golang如何實現HTTP代理伺服器GolangHTTP伺服器
- 代理ip池對爬蟲有多重要爬蟲
- 介紹一種更方便的代理池實現方案
- 如何用海外HTTP代理設定python爬蟲代理ip池?HTTPPython爬蟲
- golang兩種資料庫連線池實現Golang資料庫
- 如何透過代理IP實現Facebook群控?
- 爬蟲採集自建代理ip池的三大優勢爬蟲
- 使用PHP實現動態代理IP的示例程式碼PHP
- 代理ip池對爬蟲有什麼好處爬蟲
- 如何獲取高質量的靜態住宅ip,建立自己的靜態ip代理池?
- 代理IP如何實現網路資訊保安防護?
- 高匿IP代理與透明IP代理的區別
- 怎麼實現代理伺服器設定隧道代理IP的詳細步驟(程式碼)伺服器
- Golang 心跳的實現Golang
- 爬蟲ip代理池搭建前需解決的問題及搭建思路爬蟲
- 如何用http代理的ip池繞過網站反爬蟲機制?HTTP網站爬蟲
- python爬蟲實戰:爬取西刺代理的代理ip(二)Python爬蟲
- 如何實現Java 設定動態代理ip的具體操作步驟Java
- golang 的 http 請求池GolangHTTP
- 使用代理ip的原因
- 快代理代理IP測試,最新代理IP質量測試
- 代理IP的三個實際應用場景
- 靜態住宅代理助你更好實現Facebook群控效果!挑選靜態住宅ip的購買ip指南