Не удается получить доступ к Amazon с помощью Selenium, пожалуйста, включите cookies

#python #selenium #cookies

#python #selenium #файлы cookie

Вопрос:

Я пытаюсь приобрести продукт на Amazon через selenium, но не могу войти в свою учетную запись, при попытке входа в систему я получаю сообщение «Пожалуйста, включите Cookies», я использую chromedriver, у которого должны быть включены cookies, мой код ниже:

 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()
 

Ответ №1:

Попробуйте добавить user-agent с помощью этой строки

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

Также помните, что Amazon имеет хороший механизм обнаружения антиботов, скорее всего, ваш IP заблокирован, если вы попытаетесь через 20-25 минут, вы увидите, что это может сработать, но затем он будет заблокирован через 2-3 минуты.

Комментарии:

1. Спасибо, Саад, к сожалению, я все еще получаю запрос «пожалуйста, включите cookies» в верхней части страницы входа.

2. @JSwordy, вы добавили UA вместо UA? или вы просто использовали приведенный выше код как есть? Вам необходимо добавить user agent.