3
0

WebCookiePool.py 1.4 KB

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