Donc, je suis en train d'essayer quelque chose avec Selenium et je veux vraiment que ce soit rapide.
Donc, je pense que le faire fonctionner avec du chrome sans tête rendrait mon script plus rapide.
Tout d’abord, cette hypothèse est-elle correcte ou n’importe-t-il pas si je lance mon script avec un pilote sans tête?
Quoi qu'il en soit, je veux toujours que cela fonctionne sans fonctionner, mais je ne peux pas, j'ai essayé différentes choses et la plupart ont suggéré que cela fonctionnerait comme indiqué dans la mise à jour d'octobre
Comment configurer ChromeDriver pour lancer le navigateur Chrome en mode sans tête via Selenium?
Mais quand j'essaye ça, j'ai une sortie de console bizarre et ça ne semble toujours pas fonctionner.
Toute pointe appréciée.
Pour exécuter chrome-headless, ajoutez simplement --headless
via chrome_options.add_argument
, c.-à-d.:
from Selenium import webdriver
from Selenium.webdriver.chrome.options import Options
chrome_options = Options()
#chrome_options.add_argument("--disable-extensions")
#chrome_options.add_argument("--disable-gpu")
chrome_options.add_argument("--headless")
driver = webdriver.Chrome(chrome_options=chrome_options)
start_url = "https://google.com"
driver.get(start_url)
print(driver.page_source.encode("utf-8"))
driver.quit()
# b'<!DOCTYPE html><html xmlns="http://www....
Donc, je pense que le faire fonctionner avec du chrome sans tête rendrait mon script plus rapide.
Essayez d’utiliser des options de chrome telles que --disable-extensions
ou --disable-gpu
et faites une analyse comparative, mais je n’aurais aucune amélioration notable.
Références: https://developers.google.com/web/updates/2017/04/headless-chrome
Si vous utilisez l'environnement linux, vous devrez peut-être également ajouter --no-sandbox ainsi que des paramètres de taille de fenêtre spécifiques. --no-sandbox n'est pas nécessaire dans Windows si vous définissez correctement le conteneur d'utilisateurs.
disable-gpu uniquement sous Windows. Les autres plates-formes n'en ont plus besoin. Le drapeau --disable-gpu est un moyen temporaire de résoudre quelques bugs.
//Headless chrome browser and configure
WebDriverManager.chromedriver().setup();
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--no-sandbox");
chromeOptions.addArguments("--headless");
chromeOptions.addArguments("disable-gpu");
// chromeOptions.addArguments("window-size=1400,2100"); // linux should be activate
driver = new ChromeDriver(chromeOptions);