ProxyPool

Golang 实现的 IP 代理池
授权协议 Apache
开发语言 Google Go
所属分类 服务器软件、 代理服务器软件
软件类型 开源软件
地区 国产
投 递 者 宰父衡
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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

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

  • ProxyPool 简易高效的代理池,提供如下功能: 定时抓取免费代理网站,简易可扩展。 使用 Redis 对代理进行存储并对代理可用性进行排序。 定时测试和筛选,剔除不可用代理,留下可用代理。 提供代理 API,随机取用测试通过的可用代理。 代理池原理解析可见「如何搭建一个高效的代理池」。 安装过程 需要环境 Python>=3.7 Redis 安装依赖包 pip3 install -r req

  • GitHub - Python3WebSpider/ProxyPool: An Efficient ProxyPool with Getter, Tester and Server 项目主要是做代理池采集入库到redis,我主要是通过搭建好的 /all 接口 获取到所有 ip ,通过一台高性能服务器来做代理池、拉取、验证、存储,项目的搭建教程请自行查看资料。 以下是我提供拉取、验证、存储的 she

 相关资料
  • 本文向大家介绍java代理实现爬取代理IP的示例,包括了java代理实现爬取代理IP的示例的使用技巧和注意事项,需要的朋友参考一下 仅仅使用了一个java文件,运行main方法即可,需要依赖的jar包是com.alibaba.fastjson(版本1.2.28)和Jsoup(版本1.10.2) 如果用了pom,那么就是以下两个: 完整的代码如下: 以上这篇java代理实现爬取代理IP的示例就是小编

  • 注解 @ProxyPool 声明代理 IP 池,在爬虫对象或者爬虫项对象上声明,则请求时自动从代理 IP 池中取出代理IP 类名:\Yurun\Crawler\Module\Crawler\Annotation\ProxyPool 参数: 名称 描述 默认值 class 代理 IP 池名 args 实例化参数 method 获取 IP 的方式:random(随机)、next(下一个) 代理 IP

  • 本文向大家介绍node.js 抓取代理ip实例代码,包括了node.js 抓取代理ip实例代码的使用技巧和注意事项,需要的朋友参考一下 node.js实现抓取代理ip 主要文件:index.js 包支持 : package.json 本地需要安装mongodb数据库,用于存储抓取到的ip,目前还未实现ip验证。写这个主要是处于好奇。 上面的代码就可以实现抓取ip代理网站的ip并存到mongodb数

  • 本文向大家介绍python获取代理IP的实例分享,包括了python获取代理IP的实例分享的使用技巧和注意事项,需要的朋友参考一下 平时当我们需要爬取一些我们需要的数据时,总是有些网站禁止同一IP重复访问,这时候我们就应该使用代理IP,每次访问前伪装自己,让“敌人”无法察觉。 oooooooooooooooOK,让我们愉快的开始吧! 这个是获取代理ip的文件,我将它们模块化,分为三个函数 注:文中

  • 本文将讲述如何配置和启用 ip-masq-agent。 创建 ip-masq-agent 要创建 ip-masq-agent,运行下面的 kubectl 命令: kubectl create -f https://raw.githubusercontent.com/kubernetes-incubator/ip-masq-agent/master/ip-masq-agent.yaml 关于 ip-

  • http代理 <?php $http = HttpRequest::newSession(); $response = $http->proxy('127.0.0.1', 808) // 常见的http代理这样用 ->get('https://www.baidu.com/'); $content = $response->body(); // 网页源码 sock

  • 本文向大家介绍使用python验证代理ip是否可用的实现方法,包括了使用python验证代理ip是否可用的实现方法的使用技巧和注意事项,需要的朋友参考一下 在使用爬虫爬取网络数据时,如果长时间对一个网站进行抓取时可能会遇到IP被封的情况,这种情况可以使用代理更换ip来突破服务器封IP的限制。 随手在百度上搜索免费代理IP,可以得到一系列的网站,这里我们通过对西刺网站的抓取来举例。 通过编写一个爬虫

  • 本文向大家介绍Python实现的异步代理爬虫及代理池,包括了Python实现的异步代理爬虫及代理池的使用技巧和注意事项,需要的朋友参考一下 使用python asyncio实现了一个异步代理池,根据规则爬取代理网站上的免费代理,在验证其有效后存入redis中,定期扩展代理的数量并检验池中代理的有效性,移除失效的代理。同时用aiohttp实现了一个server,其他的程序可以通过访问相应的url来从