WebCookiePool.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738
  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. if isinstance(self.proxy, dict):
  20. self.proxy = self.proxy.get('http')
  21. self._kwargs.setdefault("proxy", self.proxy)
  22. with WebDriver(**self._kwargs) as browser:
  23. try:
  24. browser.get(self.page_url)
  25. while self.cookie_key not in browser.cookies.keys():
  26. browser.get(self.page_url)
  27. tools.delay_time(2)
  28. count += 1
  29. if count >= 3:
  30. return
  31. cookies = browser.cookies
  32. return cookies
  33. except Exception as e:
  34. log.error(f"获取cookie失败,{e}")