Перейти к содержимому

Front

Регистрация: 12 ноя 2022
Offline Активность: 25 ноя 2022 11:30
-----

Мои сообщения

В теме: Переключение языков в Chrome headless Selenium Python

13 ноября 2022 - 23:30

В итоге мне удалось самому решить свою проблему ))

Дело в том, что мой стенд с Selenium расположен на виртуальной машине в Яндекс.Облаке и, вероятно, там происходят какие-то блокировки, если система чувствует, что кто-то на ней запускает ботов. Проблема решается, если настроить Chrome.webdriver как можно более похожим на обычный браузер.

Для этого я использовал библиотеку  selenium_stealth 

Вот код (модифицированный предыдущий), который корректно отрабатывает языковые настройки.

from selenium_stealth import stealth
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By

language = 'es'

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--headless")

browser = webdriver.Chrome(options=chrome_options)

stealth(browser,
        languages=[language,"en"],
        vendor="Google Inc.",
        platform="Win32",
        )

print("Selenium_stealth: \t1.0.6.")
print("Selenium.webdriver:\t", webdriver.__version__)
print("browserVersion:\t\t", browser.capabilities['browserVersion'])
print("chromedriverVersion:\t", browser.capabilities['chrome']['chromedriverVersion'].split(' ')[0])
print("-----------\n")

browser.get("https://www.google.com/")

print("URL:\t",browser.current_url, "\nTitle:\t", browser.title)
print("My lang:\t", language)
print("JS lang:\t", browser.execute_script("return window.navigator.userLanguage || window.navigator.language"))
print("HTML lang:\t", browser.find_element(By.TAG_NAME, "html").get_attribute('lang'))

browser.quit()

Результат исполнения скрипта:

Selenium_stealth:       1.0.6.
Selenium.webdriver:      4.5.0
browserVersion:          107.0.5304.87
chromedriverVersion:     107.0.5304.87
-----------

URL:     https://www.google.com/
Title:   Google
My lang:         es
JS lang:         es
HTML lang:       es-419