#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.