1234567891011121314151617181920212223242526272829303132333435363738 |
- from feapder.utils.webdriver import WebDriver
- from feapder.utils.log import log
- from untils.cookie_pool import PageCookiePool
- import feapder.utils.tools as tools
- class WebCookiePool(PageCookiePool):
- proxy = None
- def __init__(self, redis_key, page_url, cookie_key, **kwargs):
- super(WebCookiePool, self).__init__(redis_key, **kwargs)
- self.page_url = page_url
- self.cookie_key = cookie_key
- self._kwargs = kwargs
- self._kwargs.setdefault("load_images", False)
- self._kwargs.setdefault("headless", False)
- self._kwargs.setdefault("driver_type", "CHROME")
- self._kwargs.setdefault("render_time", 5)
- self._kwargs.setdefault("usages_local_driver", False)
- def create_cookie(self):
- count = 0
- if isinstance(self.proxy, dict):
- self.proxy = self.proxy.get('http')
- self._kwargs.setdefault("proxy", self.proxy)
- with WebDriver(**self._kwargs) as browser:
- try:
- browser.get(self.page_url)
- while self.cookie_key not in browser.cookies.keys():
- browser.get(self.page_url)
- tools.delay_time(2)
- count += 1
- if count >= 3:
- return
- cookies = browser.cookies
- return cookies
- except Exception as e:
- log.error(f"获取cookie失败,{e}")
|