MCPcopy Create free account
hub / github.com/Boris-code/feapder / __init__

Method __init__

feapder/network/proxy_pool_old.py:375–441  ·  view source on GitHub ↗

:param size: 代理池大小 -1 为不限制 :param proxy_source_url: 代理文件地址 支持列表 :param proxy_instance: 提供代理的实例 :param reset_interval: 代理池重置间隔 最小间隔 :param reset_interval_max: 代理池重置间隔 最大间隔 默认2分钟 :param check_valid: 是否在获取代理时进行检测有效性 :param local_proxy_file_ca

(self, **kwargs)

Source from the content-addressed store, hash-verified

373 """代理池"""
374
375 def __init__(self, **kwargs):
376 """
377 :param size: 代理池大小 -1 为不限制
378 :param proxy_source_url: 代理文件地址 支持列表
379 :param proxy_instance: 提供代理的实例
380 :param reset_interval: 代理池重置间隔 最小间隔
381 :param reset_interval_max: 代理池重置间隔 最大间隔 默认2分钟
382 :param check_valid: 是否在获取代理时进行检测有效性
383 :param local_proxy_file_cache_timeout: 本地缓存的代理文件超时时间
384 :param logger: 日志处理器 默认 log.get_logger()
385 :param kwargs: 其他的参数
386 """
387 kwargs.setdefault("size", -1)
388 kwargs.setdefault("proxy_source_url", setting.PROXY_EXTRACT_API)
389
390 super(ProxyPool, self).__init__(**kwargs)
391 # 队列最大长度
392 self.max_queue_size = kwargs.get("size", -1)
393 # 实际代理数量
394 self.real_max_proxy_count = 1000
395 # 代理可用最大次数
396 # 代理获取地址 http://localhost/proxy.txt
397 self.proxy_source_url = kwargs.get("proxy_source_url", [])
398 if not isinstance(self.proxy_source_url, list):
399 self.proxy_source_url = [self.proxy_source_url]
400 self.proxy_source_url = [x for x in self.proxy_source_url if x]
401 self.proxy_source_url = list(set(self.proxy_source_url))
402 kwargs.update({"proxy_source_url": self.proxy_source_url})
403 # 处理日志
404 self.logger = kwargs.get("logger") or log
405 kwargs["logger"] = self.logger
406 if not self.proxy_source_url:
407 self.logger.warn("need set proxy_source_url or proxy_instance")
408
409 # 代理池重置间隔
410 self.reset_interval = kwargs.get("reset_interval", 5)
411 # 强制重置一下代理 添加新的代理进来 防止一直使用旧的被封的代理
412 self.reset_interval_max = kwargs.get("reset_interval_max", 180)
413 # 是否监测代理有效性
414 self.check_valid = kwargs.get("check_valid", True)
415
416 # 代理队列
417 self.proxy_queue = None
418 # {代理id: ProxyItem, ...}
419 self.proxy_dict = {}
420 # 失效代理队列
421 self.invalid_proxy_dict = {}
422
423 self.kwargs = kwargs
424
425 # 重置代理池锁
426 self.reset_lock = None
427 # 重置时间
428 self.last_reset_time = 0
429 # 重置的太快了 计数
430 self.reset_fast_count = 0
431 # 计数 获取代理重试3次仍然失败 次数
432 self.no_valid_proxy_times = 0

Callers

nothing calls this directly

Calls 4

warnMethod · 0.80
__init__Method · 0.45
getMethod · 0.45
updateMethod · 0.45

Tested by

no test coverage detected