首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Java代理IP池 ( Proxy Pool ) - 改进版

Java代理IP池 ( Proxy Pool ) - 改进版

作者头像
Parker
修改2025-06-26 17:06:35
修改2025-06-26 17:06:35
3.9K00
代码可运行
举报
文章被收录于专栏:在码圈在码圈
运行总次数:0
代码可运行

背景

前段时间,写java爬虫来爬网易云音乐的评论。不料,爬了一段时间后ip被封禁了。由此,想到了使用ip代理,但是找了很多的ip代理网站,很少有可以用的代理ip。 于是,抱着边学习的心态,Fork了一个代理ip池。

相关技术及环境

技术: SpringBoot,SpringMVC, Hibernate, MySQL, Redis , Maven, Lombok, BootStrap-table,多线程并发 环境: JDK1.8 , IDEA

开源地址

源作者开源地址:

https://github.com/chenerzhu/proxy-pool

现改进版Fork 地址

https://github.com/hiparker/proxy-pool

实现功能

通过ip代理池,提供高可用的代理ip,可用率达到95%以上。

  • 通过接口获取代理ip 通过访问接口,如:http://127.0.0.1:8080/proxyIp 返回代理ip的json格式
代码语言:javascript
代码运行次数:0
运行
复制
{
    "code":200,
    "data":[
        {
            "available":true,
            "ip":"1.10.186.214",
            "lastValidateTime":"2018-09-25 20:31:52",
            "location":"THThailand",
            "port":57677,
            "requestTime":0,
            "responseTime":0,
            "type":"https",
            "useTime":3671
        }
    ],
    "message":"success"
}
  • 通过页面获取代理ip 通过访问url,如:http://127.0.0.1:8080 返回代理ip列表页面。
  • 提供代理ip测试接口及页面 通过访问url, 如:http://127.0.0.1:8080/test (get)测试代理ip的可用性;通过接口 http://127.0.0.1:8080/test ](post data: {"ip": "127.0.0.1","port":8080} ) 测试代理ip的可用性。
  • 提供代理ip - txt 接口及页面 通过访问url, 如:http://127.0.0.1:8000/proxyAllByTXT (get)
  • 如要返回json格式的接口 可自行开发

设计思路

模块划分
  • 爬虫模块:爬取代理ip网站的代理IP信息,先通过队列再保存进数据库。
  • 数据库同步模块:设置一定时间间隔同步数据库IP到redis缓存中。
  • 缓存redis同步模块:设置一定时间间隔同步redis缓存到另一块redis缓存中。
  • 缓存redis代理ip校验模块:设置一定时间间隔redis缓存代理ip池校验。
  • 前端显示及接口控制模块:显示可用ip页面,及提供ip获取api接口。

IP来源

改进本-优化

  • 可配置化
  • 收费api配置化

如何使用

前提: 已经安装JDK1.8环境,MySQL数据库,Redis。 先使用maven编译成jar,proxy-pool-1.0.jar。 使用SpringBoot启动方式,启动即可。

代码语言:javascript
代码运行次数:0
运行
复制
java -jar proxy-pool-1.0.jar
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-04-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 相关技术及环境
  • 开源地址
  • 实现功能
  • 设计思路
    • 模块划分
  • IP来源
  • 改进本-优化
  • 如何使用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档