用golang 实现一个代理池
背景
写爬虫的时候总会遇到爬取速度过快而被封IP的情况,这个时候就需要使用代理了。在https://github.com/henson/ProxyPool
的启发下,决定自己实现一个代理池。项目已经开源在github。
https://github.com/AceDarkknight/GoProxyCollector
2018.03.29更新
- go 版本升级为1.9.4,使用新版本的sync.Map 提高并发读的效率
开发环境
windows 7,Go 1.8.4
数据来源
http://www.xicidaili.com
http://www.89ip.cn
http://www.kxdaili.com/
https://www.kuaidaili.com
http://www.ip3366.net/
http://www.ip181.com/
http://www.data5u.com
https://proxy.coderbusy.com
项目结构
目录 | 作用 |
---|---|
collector | 收集器,抓取各个网站的代理 |
result | 表示抓取的结果 |
scheduler | 负责任务调度,包括启动collector和入库 |
server | 启动一个web服务,提供取结果的API |
storage | 存储结果,通过接口可以使用别的数据库 |
util | 一些常用的工具方法 |
verifier | ip的验证与入库出库 |
相关文章