简介
分享一个搜集代理的开源项目,可以扫描全网的公共代理,包括HTTP、HTTPS、SOCKS4、SOCKS5 四种类型的代理。最终形成一个代理池以供使用。
源代码地址:https://github.com/RanSecWlx/proxyPool
当某些网站不好访问的时候,或者运行爬虫被封禁IP的时候,可以挑选一个代理,帮助访问。自己测试有些代理稳定,有些不太稳定,这个和代理来源有关系。
项目中定时轮询也是在检测代理的稳定性,以便筛选出高质量的代理。挑选出高质量的使用就可以了。
可以在浏览器、操作系统、应用软件上配置使用,也可以作为接口在代码中获取临时代理来使用。官方也给出了示例。
本次示例是基于 python3.10.15 搭建的。
关于 python
版本的安装,参考往期文章:https://www.madbull.site/?p=1933。此篇文章不再赘述。
关于隔离的 python
虚拟环境的搭建,参考往期文章:https://www.madbull.site/?p=1558
获取代码
指令:git clone https://github.com/RanSecWlx/proxyPool.git

构建虚拟环境
创建 python 虚拟环境,并激活。
指令:python3.10 -m venv /opt/ppvenvpy3.10 ; source /opt/ppvenvpy3.10/bin/activate

安装依赖包
源代码给的需要依赖的库列表 requirements.txt
文件不太好用,我这边基于 python3.10
重新做了一个整理。修改了需要安装的依赖文件,命名为 requirements.py3.10.txt
,内容如下:
requests
gunicorn
lxml
redis
pysocks
APScheduler
click
Flask
werkzeug
python-daemon
安装指令:pip install -r requirements.py3.10.txt -i https://pypi.doubanio.com/simple
这里用了豆瓣的 pip
源,一直觉得这个源挺好用的。
运行
修改配置文件。由于此项目使用到 redis
做缓存,所以需要预先安装并启动。需要修改配置文件中 redis
的登录密码,对应文件是 settings.py
。如果启动 redis
不添加密码,可以把密码去掉,具体修改内容如下图所示。

查看帮助手册:python proxyPool.py -h

运行服务:python proxyPool.py startServer

运行定时轮询任务:python proxyPool.py startScheduler

获取搜集到的代理:curl http://127.0.0.1:5010/count/ | jq .
还有其他查询接口,具体接口查看作者公布的接口,地址:https://github.com/RanSecWlx/proxyPool


发表回复