WebCookiePool.py 1.2 KB

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