代理更新程序

proxyup的Python项目详细描述


代理

Build StatusPyPI repositoryCode CoverageCode Health

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来废弃新的代理。请注意,此后端可能会在包的未来版本中更改。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
javai是JAXB的新手。如何将两个具有不同名称空间的不同xml合并为一个具有根元素的xml并将其解组?   JDO中的java应该是可传递的DefaultFetchGroup吗   java服务器配置问题   java在理解JList时遇到困难   java何时将RequestContextFilter用于Jersey?   java从数据库中读取文本文件。jar文件   Java正则表达式,仅适用于不包括零的正数   爪哇番石榴。类路径中的jar   JavaEE:关于设计的问题   java GUI,在面板中排列按钮   java Android为什么使用接口被认为是活动和片段之间通信的最佳实践?   java如何获取wicket图像的url以在开放图元标记中使用它   从Java字节[]>Base64>Javascript数组缓冲>Base64>byte[]   java正则表达式帮助字符串JWE766。1.pdf格式摘录766   java Hibernate,JPA忽略@Formula