Селен не может получить повар ie в Scrapy-Redis - PullRequest
0 голосов
/ 19 июня 2020

Я писал паука, и через некоторое время он был заблокирован сервером веб-сайта, поэтому я попытался сменить свой Cook ie, чтобы продолжить синтаксический анализ веб-сайта. Я написал следующий код и протестировал его локально, используя фреймворк Scrapy, и он работал нормально. Однако, когда я попытался запустить его на сервере своей лаборатории (с помощью Scrapy-Redis), я больше не смог получить cook ie.

    def get_sm_cookie(self):
        while 1:
            try:
                url = 'https://m.sm.cn/s?q=KEYWORD&from=smor'  
                option = webdriver.ChromeOptions()
                option.add_argument('--headless')
                option.add_argument('--disable-gpu')
                option.add_argument('user-agent="Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Mobile Safari/537.36"')
                option.add_experimental_option('excludeSwitches', ['enable-logging'])
                # option.add_argument('blink-settings=imagesEnabled=false')
                browser = webdriver.Chrome(options=option)
                browser.get(url)
                time.sleep(5)
                print("selenium link is:", browser.current_url)
                print(browser.get_cookies())
                cookie_item = {}
                for cookie_dict in browser.get_cookies():
                    cookie_item[cookie_dict['name']] = cookie_dict['value']
                browser.quit()
                break
            except Exception as e:
                print(e)
                browser.quit()
                time.sleep(10)
        print('This is new cookie:', cookie_item)
        return cookie_item

После запуска на сервере

print(browser.get_cookies()) 

напечатал что-то вроде

[]

Ничего не было получено.

Может ли кто-нибудь дать мне некоторое представление о том, как решить эту проблему? Спасибо за любые советы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...