proxypool
该项目是一个用Go语言实现的IP代理池,用于采集免费代理资源并验证其有效性,为爬虫提供可用的代理IP。
核心功能:
- 代理采集:支持从9个免费代理网站(如66ip、ip181、Proxylist+等)抓取IP,并可扩展自定义采集接口。
- 代理验证:通过定时任务检测代理可用性,过滤掉无效或速度过慢(≥1秒)的代理。
- 数据库支持:使用xorm框架,兼容MySQL、PostgreSQL、SQLite3等数据库,支持数据自动更新与去重。
- API接口:提供HTTP接口(如
/v2/ip、/v2/https)返回随机可用代理,支持爬虫直接调用。
使用方法:
- 安装依赖(如PhantomJS)后,通过
go get下载项目,修改配置文件app.ini(设置数据库、日志等参数),执行go build并启动服务。 - 通过HTTP接口获取代理,支持自定义扩展采集函数并修改
main.go中的调用逻辑。
主要特性:
- 支持多平台(含MAC)及多种数据库类型;
- 容错机制确保单个采集错误不影响整体运行;
- 日志系统支持文件输出、自动轮转及分级记录;
- 提供代理速度检测与自动过滤功能。