WebCookiePool.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536
  1. from feapder.utils.webdriver import WebDriver
  2. from feapder.utils.log import log
  3. from untils.cookie_pool import PageCookiePool
  4. import feapder.utils.tools as tools
  5. class WebCookiePool(PageCookiePool):
  6. proxy = None
  7. def __init__(self, redis_key, page_url, cookie_key, **kwargs):
  8. super(WebCookiePool, self).__init__(redis_key, **kwargs)
  9. self.page_url = page_url
  10. self.cookie_key = cookie_key
  11. self._kwargs = kwargs
  12. self._kwargs.setdefault("load_images", False)
  13. self._kwargs.setdefault("headless", False)
  14. self._kwargs.setdefault("driver_type", "CHROME")
  15. self._kwargs.setdefault("render_time", 5)
  16. self._kwargs.setdefault("usages_local_driver", False)
  17. def create_cookie(self):
  18. count = 0
  19. self._kwargs.setdefault("proxy", self.proxy)
  20. with WebDriver(**self._kwargs) as browser:
  21. try:
  22. browser.get(self.page_url)
  23. while self.cookie_key not in browser.cookies.keys():
  24. browser.get(self.page_url)
  25. tools.delay_time(2)
  26. count += 1
  27. if count >= 3:
  28. return
  29. cookies = browser.cookies
  30. return cookies
  31. except Exception as e:
  32. log.error(f"获取cookie失败,{e}")