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}")