getter.py 898 B

1234567891011121314151617181920212223242526272829
  1. from proxypool.tester import Tester
  2. from proxypool.db import RedisClient
  3. from proxypool.crawler import Crawler
  4. from proxypool.setting import *
  5. class Getter():
  6. def __init__(self):
  7. self.redis = RedisClient()
  8. self.crawler = Crawler()
  9. def is_over_threshold(self):
  10. """
  11. 判断是否达到了代理池限制
  12. """
  13. if self.redis.count() >= POOL_UPPER_THRESHOLD:
  14. return True
  15. else:
  16. return False
  17. def run(self):
  18. print('获取器开始执行')
  19. if not self.is_over_threshold():
  20. for callback_label in range(self.crawler.__CrawlFuncCount__):
  21. callback = self.crawler.__CrawlFunc__[callback_label]
  22. # 获取代理
  23. proxies = self.crawler.get_proxies(callback)
  24. for proxy in proxies:
  25. self.redis.add(proxy)