Skip to content

lin423497786/ProxyPool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ProxyPool

免费代理池,提供如下功能:

  • 定时抓取免费代理网站的代理信息, 可扩展。
  • 定时验证爬取下来的代理, 剔除不可用代理, 留下可用代理, 保证代理的可用性。
  • 提供api, 方便提取可用的代理。

运行项目

  • Python>=3.6
  • 下载代码:
git clone https://github.com/lin423497786/ProxyPool.git
cd ProxyPool
  • 安装依赖:
pip install -r requirements.txt
  • 更改配置:
# proxypool/setting.py 为项目配置文件
import logging

# redis key
REDIS_KEY = 'proxies'

# redis 服务器的地址
REDIS_HOST = '192.168.174.128'

# redis服务器的监听端口
REDIS_PORT = 6379

# 连接redis服务器所使用的密码
REDIS_PASSWORD = ''

# api服务绑定的ip地址
API_HOST = '0.0.0.0'

# api服务监听的端口
API_PORT = 9999
...
  • 启动项目:
python3 run.py

使用

  • Api

启动服务后, 默认会在 http://127.0.0.1:9999 开启api接口服务:

api method Description params
/ GET api介绍 None
/random/ GET 随机获取多个代理 可选参数:
max_delay 代理的最大延迟
min_success_count最小的连续检测成功次数,
连续检测成功次数越多代表代理越稳定
number代理个数,默认为1
/pop/ GET 随机获取并删除多个代理 可选参数:
max_delay 代理的最大延迟
min_success_count最小的连续检测成功次数,
连续检测成功次数越多代表代理越稳定
number代理个数,默认为1
/all/ GET 获取所有代理 None
/count/ GET 查看代理数量 None
/clear/ GET 删除所有代理 None
/delete/ GET 删除代理 proxy={PROTOCOL}://{IP}:{PORT}"
  • 示例
import requests

# 获取一个随机代理
url = 'http://127.0.0.1:9999/random/'
requests.get(url)

# 获取一个延时不超过1秒的代理
url = 'http://127.0.0.1:9999/random/?max_delay=1'
requests.get(url)

# 获取5个延时不超过1秒的代理
url = 'http://127.0.0.1:9999/random/?max_delay=1&number=5'
requests.get(url)

# 获取1个延时不超过1秒且连续检测成功4次的代理, 连续成功越多次代表代理越稳定
url = 'http://127.0.0.1:9999/random/?max_delay=1&number=1&min_success_count=4'
requests.get(url)



About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages