:param proxies: :param valid_timeout: 代理检测超时时间 默认-1 20181008 默认不再监测有效性 :param check_interval: :param max_proxy_use_num: :param delay: :param use_interval: 使用间隔 单位秒 默认不限制 :param logger: 日志处理器 默认 log.get_logger() :param kwargs:
(
self,
proxies=None,
valid_timeout=20,
check_interval=180,
max_proxy_use_num=10000,
delay=30,
use_interval=None,
**kwargs,
)
| 221 | proxy_tag_list = (-1, 0, 1) |
| 222 | |
| 223 | def __init__( |
| 224 | self, |
| 225 | proxies=None, |
| 226 | valid_timeout=20, |
| 227 | check_interval=180, |
| 228 | max_proxy_use_num=10000, |
| 229 | delay=30, |
| 230 | use_interval=None, |
| 231 | **kwargs, |
| 232 | ): |
| 233 | """ |
| 234 | :param proxies: |
| 235 | :param valid_timeout: 代理检测超时时间 默认-1 20181008 默认不再监测有效性 |
| 236 | :param check_interval: |
| 237 | :param max_proxy_use_num: |
| 238 | :param delay: |
| 239 | :param use_interval: 使用间隔 单位秒 默认不限制 |
| 240 | :param logger: 日志处理器 默认 log.get_logger() |
| 241 | :param kwargs: |
| 242 | """ |
| 243 | # {"http": ..., "https": ...} |
| 244 | self.proxies = proxies |
| 245 | # 检测超时时间 秒 |
| 246 | self.valid_timeout = valid_timeout |
| 247 | # 检测间隔 秒 |
| 248 | self.check_interval = check_interval |
| 249 | |
| 250 | # 标记 0:正常 -1:丢弃 1: 待会再用 ... |
| 251 | self.flag = 0 |
| 252 | # 上次状态变化时间 |
| 253 | self.flag_ts = 0 |
| 254 | # 上次更新时间 有效时间 |
| 255 | self.update_ts = 0 |
| 256 | # 最大被使用次数 |
| 257 | self.max_proxy_use_num = max_proxy_use_num |
| 258 | # 被使用次数记录 |
| 259 | self.use_num = 0 |
| 260 | # 延迟使用时间 |
| 261 | self.delay = delay |
| 262 | # 使用间隔 单位秒 |
| 263 | self.use_interval = use_interval |
| 264 | # 使用时间 |
| 265 | self.use_ts = 0 |
| 266 | |
| 267 | self.proxy_args = self.parse_proxies(self.proxies) |
| 268 | self.proxy_ip = self.proxy_args["ip"] |
| 269 | self.proxy_port = self.proxy_args["port"] |
| 270 | self.proxy_ip_port = "{}:{}".format(self.proxy_ip, self.proxy_port) |
| 271 | if self.proxy_args["user"]: |
| 272 | self.proxy_id = "{user}:{password}@{ip}:{port}".format(**self.proxy_args) |
| 273 | else: |
| 274 | self.proxy_id = self.proxy_ip_port |
| 275 | |
| 276 | # 日志处理器 |
| 277 | self.logger = log |
| 278 | |
| 279 | def get_proxies(self): |
| 280 | self.use_num += 1 |