Golang 实现的 IP 代理池 ProxyPool

Apache
Google Go
跨平台
2017-03-30
Henson

采集免费的代理资源为爬虫提供有效的代理

1、代理池设计

代理池由四部分组成:

  • Getter:

    代理获取接口,目前有6个免费代理源,每调用一次就会抓取这个6个网站最新的100个代理放入Channel,可自行添加额外的代理获取接口;

  • Channel:

    临时存放采集来的代理,通过访问稳定的网站去验证代理的有效性,有效则并存入数据库;

  • Schedule:

    用定时的计划任务去检测数据库中代理IP的可用性,删除不可用的代理。同时也会主动通过Getter去获取最新代理;

  • Api:

    代理池的访问接口,提供get接口输出JSON,方便爬虫直接使用。

2、代码实现

  • Api:

    api接口相关代码,提供get接口,输出JSON;

  • Storage:

    数据库相关代码,数据库采用Mongo;

  • Getter:

    代理获取的相关代码,目前抓取:快代理代理66IP181有代理西刺代理guobanjia这个六个网站的免费代理,经测试这些网站每天更新的可用代理只有六七十个,当然也支持自己扩展代理接口;

  • Schedule:

    定时任务,目前在main.go中以轮询方式实现,后期会改进;

  • Util:

    存放一些公共的模块、方法或函数,包含Config:读取配置文件config.json;

  • 其他文件:

    配置文件:config.json,数据库配置和代理获取接口配置;

{
    "mongo": {
        "addr": "mongodb://127.0.0.1:27017/",
        "db": "temp",
        "table": "pool",
        "event": "event"
    },
    "host": ":8080"
}

3、安装及使用

下载代码:

go get -u github.com/henson/ProxyPool

配置好相应的config.json并启动:

go build

./ProxyPool

使用:

访问:http://localhost:8080/v1/ip

HTTP

的码云指数为
超过 的项目
加载中

评论(5)

不上osc我浑身难受
不上osc我浑身难受
hi,各位go语言爱好者 Beego axtaxie谢大和好雨云社区一起推出了beego开发者大赛,使用Beego框架进行开发,作品种类、大小、形式不限,可以尽情发挥你天马行空的想象力,还有各种礼品等你来拿,期待大家踊跃参赛,https://t.goodrain.com/t/beego/297
Xiphin
Xiphin
支持
Cheuker
Cheuker
好东西,自己一直想搞个,腾不出时间
Henson
Henson 软件作者
请大家支持
dingdayu
dingdayu
这个可以有,自己一直想搞个,一直没有腾出手。赞!

暂无资讯

暂无问答

Python3 代理池

需求 在处理反爬虫问题时,第一想到的就是代理,但是代理往往需要付费,虽说网上有免费的代理,但是此类代理使用过程中有效性往往需要判断,对实际的爬取应用来说,会影响效率,在此通过获取...

2018/12/27 22:56
33
0
一步步编写自己的PHP爬取代理IP项目(三)

上一章节我们讲完了自动加载,现在我们正式进入爬虫核心代码的编写中,首先我们需要先看看整个目录 config.php 这个是我们的配置文件加载文件 ProxyPool.php 这个是爬虫的核心处理文件 Queu...

2018/09/29 10:56
475
0
一步步编写自己的PHP爬取代理IP项目(二)

这一章节我们正式开展我们的爬虫项目,首先我们先要知道哪个网站能获取到免费代理IP,目前比较火的有西刺代理,快代理等,这里我们拿西刺代理作为例子。 这里就是一个个免费的IP地址以及各自...

2018/09/23 11:44
77
0
Flask+Redis维护代理池

声明:此篇文章主要是观看静觅教学视频后做的笔记,原教程地址https://cuiqingcai.com/ 普通代理 因为之前都是学习测试,不需要对网站频繁的搜索爬取,所以代理使用似乎关系不大,不过为了防...

2018/10/10 14:17
30
0
可能是国内最火的开源项目 —— Go 篇

截止目前开源中国收录了 44517 款开源项目,囊括了最热门的各类开源项目,而软件的评分在一定程度上代表了软件的质量和热度,近年 Go 语言排名一路飙升,因此本文整理了 Go 语言中评分最高并...

2018/06/28 11:37
78
0
抓取微信文章部分信息

import requests from pyquery import PyQuery as pq from urllib.parse import urlencode basic_url ='http://weixin.sogou.com/weixin?' proxy_pool_url = 'http://127.0.0.1:5000/get' im...

2018/08/25 12:09
15
0

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部