Lors de la tentative d'automatisation des tâches à l'aide de Selenium et de Chrome, certains sites Web peuvent bloquer les requêtes en fonction de la détection d'un sélénium -navigateur piloté. Une méthode de détection courante consiste à exposer une variable DOM appelée navigator.webdriver, qui renvoie vrai si le navigateur est contrôlé par Selenium.
Pour contourner cette détection, envisagez les approches suivantes :
from selenium import webdriver options = webdriver.ChromeOptions() options.add_experimental_option("excludeSwitches", ["enable-automation"]) options.add_experimental_option("useAutomationExtension", False) driver = webdriver.Chrome(options=options, executable_path=r"path/to/chromedriver.exe")
driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})")
driver.execute_cdp_cmd("Network.setUserAgentOverride", {"userAgent": "new_user_agent"})
options.add_argument("--disable-blink-features=AutomationControlled")
from selenium import webdriver options = webdriver.ChromeOptions() options.add_argument("start-maximized") options.add_experimental_option("excludeSwitches", ["enable-automation"]) options.add_experimental_option("useAutomationExtension", False) driver = webdriver.Chrome(options=options, executable_path=r"path/to/chromedriver.exe") driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})") driver.execute_cdp_cmd("Network.setUserAgentOverride", {"userAgent": "new_user_agent"}) driver.get("https://www.example.com")
L'interface NavigatorAutomationInformation comprend le Indicateur navigator.webdriver, qui renvoie vrai lorsque le navigateur est contrôlé par WebDriver. Cependant, la modification de ces paramètres peut entraîner des problèmes de navigation ou de détection en cas d'utilisation incorrecte.
Les versions récentes de Selenium offrent des fonctionnalités supplémentaires pour le contrôle WebDriver, notamment la commande execute_cdp_cmd() pour exécuter les commandes DevTools. L'utilisation de cette commande constitue un moyen pratique de modifier l'indicateur navigator.webdriver et d'empêcher la détection de Selenium.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!