WebCookiePool.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435
  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", True)
  15. self._kwargs.setdefault("driver_type", "CHROME")
  16. def create_cookie(self, proxy=None):
  17. self._kwargs.setdefault("proxy", proxy)
  18. with WebDriver(**self._kwargs) as browser:
  19. try:
  20. browser.get(self.page_url)
  21. count = 0
  22. while self.cookie_key not in browser.cookies.keys():
  23. tools.delay_time(1)
  24. count += 1
  25. if count >= 30:
  26. return
  27. cookies = browser.cookies
  28. return cookies
  29. except Exception as e:
  30. log.error(f"获取cookie失败,{e}")