随机获取代理 :return:
(self)
| 541 | get_proxy = get |
| 542 | |
| 543 | def get_random_proxy(self) -> ProxyItem: |
| 544 | """ |
| 545 | 随机获取代理 |
| 546 | :return: |
| 547 | """ |
| 548 | if self.proxy_queue is not None: |
| 549 | if random.random() < 0.5: |
| 550 | # 一半概率检查 这是个高频操作 优化一下 |
| 551 | if time.time() - self.last_reset_time > self.reset_interval_max: |
| 552 | self.reset_proxy_pool(force=True) |
| 553 | else: |
| 554 | min_q_size = ( |
| 555 | min(self.max_queue_size / 2, self.real_max_proxy_count / 2) |
| 556 | if self.max_queue_size > 0 |
| 557 | else self.real_max_proxy_count / 2 |
| 558 | ) |
| 559 | if self.proxy_queue.qsize() < min_q_size: |
| 560 | self.reset_proxy_pool() |
| 561 | try: |
| 562 | return self.proxy_queue.get_nowait() |
| 563 | except Exception: |
| 564 | pass |
| 565 | return None |
| 566 | |
| 567 | def append_proxies(self, proxies_list: list) -> int: |
| 568 | """ |