Как добавить заголовки в selenium

Рейтинг: 0Ответов: 1Опубликовано: 08.04.2023

Как добавить заголовки в selenium

import time
from selenium import webdriver
from selenium.webdriver.firefox.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0',
    'Accept': '*/*',
    'Accept-Language': 'ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3',
    # 'Accept-Encoding': 'gzip, deflate, br',
    'Referer': 'https://www.avito.ru/',
    'Content-Type': 'text/plain;charset=UTF-8',
    # 'Content-Length': '423',
    'Origin': 'https://www.avito.ru',
    'Connection': 'keep-alive',
}
s = Service(executable_path=r'"C:\Users\aca47veb\Desktop\py\geckodriver.exe"')
driver = webdriver.Firefox(service=s)

try:
    url = driver.get('https://www.avito.ru/tyumen/tovary_dlya_kompyutera/komplektuyuschie/videokarty-ASgBAgICAkTGB~pm7gmmZw?cd=1&f=ASgBAQICAkTGB~pm7gmmZwFA~LwNFJjSNA&p=1&user=1')
    with open('pag.html' 'w') as file:
        file.write(url.page_source)
except Exception as ex:
    print(ex)
finally:
    driver.close()
    driver.quit()

Ответы

▲ 2

Заголовки могут быть добавлены как аргумент к Options методом add_argument(), и Вам не обязательно создавать отдельный объект headers. Вот пример с добавлением заголовка 'user-agent':

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument('user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3')

driver = webdriver.Chrome(options=options)

Чаще всего user-agent и Accept-Language достаточно чтобы не нарваться на капчу и соскрапить нужные данные. C Firefox, как в Вашем случае - не пробовал, но думаю, что аналогия такая же. Надеюсь - поможет.