前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Proxy_Pool自动化代理搜集+评估+存储+展示工具

Proxy_Pool自动化代理搜集+评估+存储+展示工具

作者头像
C4rpeDime
发布2020-01-20 14:49:48
7940
发布2020-01-20 14:49:48
举报
文章被收录于专栏:黑白安全黑白安全

Proxy_Pool代理资源池,一个小巧的代理ip抓取+评估+存储+展示的一体化的工具,可自动化的搜集检测可用代理并进行评分,并添加了Web展示和接口。

安装

1、从GitHub上拖下来

代码语言:javascript
复制
git clone https://github.com/TideSec/Proxy_Pool

2、在mysql中新建数据库proxy,将proxy.sql文件导入,在include/config.inc.php中修改数据库密码。

3、此时本机访问http://ip:port,应该可以看到代理web展示界面

4、安装python2依赖库

代码语言:javascript
复制
pip install lxml
pip install requests
pip install pymysql

5、在py_proxy_task/config.py文件中配置数据库连接信息及其他参数。

使用

在py_proxy_task目录下有proxy_get.pyproxy_check.py两个程序,前者负责每天抓ip存进数据库,后者负责数据库中ip的清理和评估。

代码语言:javascript
复制
python proxy_get.py
# 等待上述程序抓取完结果后再运行评测程序
python proxy_check.py

之后按默认配置,这两个程序每天分别执行抓取和评估工作,放服务器上长期运行即可。

简介

原代码在这里:https://github.com/chungminglu/Proxy

我对部分代码进行了修改,完善了部分提取代理的解析代码,并加入了web展示和web接口,方便其他程序调用。

web页面我是从我的另外一个扫描器上改过来的:https://github.com/TideSec/WDScanner/,里面可能有部分无用代码没有删除。

程序的几个功能:

1、每天从多个代理ip网站上抓下最新高匿ip数据。 2、经过筛选后的ip将存入数据库。 3、存入数据库的ip每天也要经过测试,存在剔除、评分机制,多次不合格的ip将被删除,每个ip都被评分,我们最终可以按得分排名获得稳定、低响应时间的优质ip。

web展示如下图所示:

Proxy_Pool自动化代理搜集+评估+存储+展示工具
Proxy_Pool自动化代理搜集+评估+存储+展示工具

web接口如下图所示:

Proxy_Pool自动化代理搜集+评估+存储+展示工具
Proxy_Pool自动化代理搜集+评估+存储+展示工具

参数设置

1、在py_proxy_task/config.py文件可进行代理评估参数的设置。

代码语言:javascript
复制
USELESS_TIME = 4   # 最大失效次数
SUCCESS_RATE = 0.8
TIME_OUT_PENALTY = 10  # 超时惩罚时间
CHECK_TIME_INTERVAL = 24*3600  # 每天更新一次

2、除数据库配置参数外,主要用到的几个参数说明如下:

USELESS_TIMESUCCESS_RATE是配合使用的,当某个ipUSELESS_TIME < 4 && SUCCESS_RATE < 0.8时(同时兼顾到ip短期和长期的检测表现),则剔除该ip。

TIME_OUT_PENALTY, 当某个ip在某次检测时失效,而又没有达到上一条的条件时(比如检测了100次后第一次出现超时),设置一个response_time的惩罚项,此处为10秒。

CHECK_TIME_INTERVAL, 检测周期。此处设置为每隔12小时检测一次数据库里每一个ip的可用性。

策略

1、每天如下5个代理ip网站上抓下最新高匿ip数据:mimi、66ip、xici、cn-proxy、kuaidaili 2、N轮筛选 收集到的ip集合将经过N轮,间隔为t的连接测试,对于每一个ip,必须全部通过这N轮测试才能最终进入数据库。如果当天进入数据库的ip较少,则暂停一段时间(一天)再抓。 3、数据库中ip评价准则

检测过程中累计超时次数>USELESS_TIME&&成功率<SUCCESS_RATE就被剔除。score = (success_rate + test_times / 500) / avg_response_time原来的考虑是score = success_rate / avg_response_time, 即:评分=成功率/平均响应时间, 考虑到检测合格过100次的老ip比新ip更有价值,检测次数也被引入评分。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-05-065,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用
  • 简介
    • 参数设置
      • 策略
      相关产品与服务
      数据库
      云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档