代理更新程序
proxyup的Python项目详细描述
代理
ProxyUP是一个用于从公共API检索代理的包。显然,它只会检索有效的代理, 以固定的速率不断检查它们,并确保代理在交付前得到响应。在
安装
可通过pip安装:
pipinstallproxyup
基本用法
一个用于检索单个http代理的简单示例:
^{pr2}$一旦检索器被实例化,它就开始以固定的速率在后台丢弃代理。在内部,它将保存定期检查和更新的有效代理列表。在
get_once()
方法允许在一次快照中检索N个代理。默认情况下,只检索一个代理。在
鼓励在上下文管理器中包装ProxyupRetriever
:
fromproxyupimportProxyupRetrieverwithProxyupRetriever(proxy_type="http")asproxies:# Valid proxy types=["http", "socks4", "socks5"]proxies_list=proxies.get_once(4)print(proxies_list)['http://X.X.X.X:XXXX','http://X.X.X.X:XXXX','http://X.X.X.X:X','http://X.X.X.X:X']
所有返回的代理都正确通过了控制措施。这些措施包括以下规则:
- 它们都有一个服务器监听指定的端口。在
- 当被请求时,https://www.google.com他们都用一个200状态码来回答。在
- 他们都在最后一秒做出反应。在类的实例化期间,可以通过
check_interval_seconds
修改此参数。在
高级用法
如果需要,可以将其包装在一个无限迭代器中,该迭代器检索X个代理,如下所示:
fromproxyupimportProxyupRetrieverwithProxyupRetriever(proxy_type="http")asproxies:# Valid proxy types=["http", "socks4", "socks5"]forproxies_listinproxies[4]:# The index es the size of the list to retrieve in a single shot print(proxies_list)['http://X.X.X.X:XXXX','http://X.X.X.X:XXXX','http://X.X.X.X:X','http://X.X.X.X:X']['http://X.X.X.X:XXXX','http://X.X.X.X:XXXX','http://X.X.X.X:X','http://X.X.X.X:X']['http://X.X.X.X:XXXX','http://X.X.X.X:XXXX','http://X.X.X.X:X','http://X.X.X.X:X']...
这个迭代器将永远运行,在每次迭代中报告有效的代理,这些代理可能与上一次迭代相同或不同。在
如果一个有效的代理被检测到不再有效,它将永远不会被再次产生。
内部代理列表以120
秒的速度不断更新,该值可以使用update_interval_seconds
参数进行修改。在
一次更新将废弃大约100-200个新的代理以包含在代理列表中。以前的代理不会被删除,除非检测到它们不再有效。在
为了避免内部列表溢出,在允许保留以供检查的内部max代理数中指定了一个限制。默认情况下,此值为1000个代理,但可以通过参数proxy_cache_size
对其进行修改。在
请注意,关闭代理对象很重要。否则,它们的内部线程将不知道何时完成,并将永远在后台运行,从而避免进程终止。在
参考文献
从0.0.1版起,这个包使用来自https://proxyscrape.com/的API来废弃新的代理。请注意,此后端可能会在包的未来版本中更改。在
- 项目
标签: