【问题标题】:Cannot access Amazon With Selenium, please Enable Cookies无法使用 Selenium 访问亚马逊,请启用 Cookie
【发布时间】:2021-01-15 10:52:55
【问题描述】:

我正在尝试通过 selenium 在亚马逊上购买产品,但我无法登录我的帐户,当我尝试登录时收到“请启用 Cookie”消息,我正在使用应该启用 cookie 的 chromedriver,我的代码是下面:

import logging
import time
import uuid
from pyvirtualdisplay import Display
from selenium import webdriver
from selenium.webdriver.common.keys import Keys


class BB_Scraper:
    def __init__(self, item):
        self.item = item
        self.driver = self.create_driver()
        self.pg_counter = 1
        self.name = str(uuid.uuid4())

    def create_driver(self):
        display = Display(visible=0, size=(1024, 768))
        display.start()
        chrome_options = webdriver.ChromeOptions()
        chrome_options.add_argument('--no-sandbox')
        chrome_options.add_argument('--disable-dev-shm-usage')
        chrome_options.add_argument('user-data-dir=selenium')
        driver = webdriver.Chrome(
                executable_path=r"/app/src/chromedriver_nix",
                options=chrome_options)
        print('driver created')
        return driver

    def save_page(self):
        with open(f'{self.name}_{self.pg_counter}.html', 'w+') as output:
            output.write(self.driver.page_source)
            self.pg_counter += 1


    def run(self):
        self.driver.get('https://www.amazon.com')
        self.save_page()
        time.sleep(5)
        search_bar = self.driver.find_element_by_id("twotabsearchtextbox")
        search_bar.send_keys(self.item)
        search_bar.send_keys(Keys.ENTER)
        time.sleep(5)
        self.save_page()
        self.driver.find_element_by_link_text(self.item).click()
        time.sleep(5)
        self.save_page()
        self.driver.find_element_by_id('buy-now-button').click()
        time.sleep(5)
        self.save_page()
        self.driver.close()


if __name__ == '__main__':
    scraper = BB_Scraper('HP Printer Paper 8.5 x 11 | 20 lb - 1 ream - 500 Sheets | 92 Bright - Made in USA | FSC Certified Copy Paper | HP Compatible 172160R')
    scraper.run()

【问题讨论】:

    标签: python selenium cookies


    【解决方案1】:

    尝试通过这一行添加用户代理

    chrome_options.add_argument("user-agent=UA")
    

    还要记住,亚马逊有很好的反机器人检测机制,很可能你的 IP 被屏蔽了,如果你在 20-25 分钟后尝试,你会看到它可能会工作,但在 2-3 分钟后它会被屏蔽。

    【讨论】:

    • 谢谢你 Saad,不幸的是我仍然在登录页面顶部收到“请启用 cookie”请求。
    • @JSwordy,您是否添加了 UA 而不是 UA?或者您只是按原样使用上面的代码?您需要添加用户代理。
    猜你喜欢
    • 2014-09-04
    • 1970-01-01
    • 2013-11-25
    • 1970-01-01
    • 2018-03-12
    • 2016-07-29
    • 2012-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多