ProxyBroker:开源代理抓取及验证程序
来源:http://www.mottoin.com/91354.html
项目主页
https://github.com/constverum/ProxyBroker
简介
ProxyBroker是一款开源的代理抓取及验证程序,异步抓取来自多个来源的公共代理,获取相关的代理信息,并验证代理的可靠性。
特点
- 从超过50个来源中查找超过7000的代理;
- 支持协议:HTTP(S),SOCKS4 / 5。同时,连接方法支持端口80和23(SMTP);
- 代理可以过滤:DNSBL类型,匿名级别,响应时间,国家和状态;
- 作为一个代理服务器,将传入的请求分配给外部代理;
- 所有的代理检查支持Cookie和Referer(还有POST);
- 自动删除重复的代理;
- 异步处理。
要求
安装
从pypi上安装稳定版本:
$ pip install proxybroker
最新版本可以直接从GitHub上获取进行安装:
$ pip install -U git+https://github.com/constverum/ProxyBroker.git
使用
查找
查找并显示10个的HTTP(S)来自美国的高速匿名代理:
$ proxybroker find --types HTTP HTTPS --lvl High --countries US --strict -l 10
抓取
查找10个美国代理并保存到文件(无检查):
$ proxybroker grab --countries US --limit 10 --outfile ./proxies.txt
Serve
运行一个本地代理服务器分发请求与高级匿名代理到代理池中:
$ proxybroker serve --host 127.0.0.1 --port 8888 --types HTTP HTTPS --lvl High
注意事项:
运行有关可用选项的详细信息命令:proxybroker –help
查看已运行命令的详细信息:proxybroker <command> –help
基本代码示例
查找并显示10个HTTP(S)代理:
import asyncio
from proxybroker import Broker
async def show(proxies):
while True:
proxy = await proxies.get()
if proxy is None: break
print('Found proxy: %s' % proxy)
proxies = asyncio.Queue()
broker = Broker(proxies)
tasks = asyncio.gather(
broker.find(types=['HTTP', 'HTTPS'], limit=10),
show(proxies))
loop = asyncio.get_event_loop()
loop.run_until_complete(tasks)
TODO
- 检查数据传输的响应时间和速度
- 检查站点访问(谷歌,推特,等)
- 正常运行时间信息
- 数据的返回校验
- 代理身份验证支持
- 查找IP代理级联
- 无指定端口的代理地址的能力(在默认端口连接)
API参考
http://proxybroker.readthedocs.io/en/latest/api.html
声明:
作者:ssooking 联系邮箱:c3Nvb2tpbmdAeWVhaC5uZXQ=
若无特殊说明,所发博文皆为原创,转载请务必注明出处、保留原文地址。欢迎交流分享!如果您有任何问题,请联系我!
作者:ssooking 联系邮箱:c3Nvb2tpbmdAeWVhaC5uZXQ=
若无特殊说明,所发博文皆为原创,转载请务必注明出处、保留原文地址。欢迎交流分享!如果您有任何问题,请联系我!