Loading

ProxyBroker:开源代理抓取及验证程序

来源:http://www.mottoin.com/91354.html

项目主页

https://github.com/constverum/ProxyBroker

简介

ProxyBroker是一款开源的代理抓取及验证程序,异步抓取来自多个来源的公共代理,获取相关的代理信息,并验证代理的可靠性。

index_find_example

特点

  • 从超过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

cli_find_example

抓取

查找10个美国代理并保存到文件(无检查):

$ proxybroker grab --countries US --limit 10 --outfile ./proxies.txt

cli_grab_example

Serve

运行一个本地代理服务器分发请求与高级匿名代理到代理池中:

$ proxybroker serve --host 127.0.0.1 --port 8888 --types HTTP HTTPS --lvl High

cli_serve_example

注意事项:

运行有关可用选项的详细信息命令: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

posted @ 2016-11-06 19:05  ssooking  阅读(1939)  评论(0编辑  收藏  举报