Also probiere ich ein paar Sachen mit Selenium aus und möchte, dass es schnell geht.
Mein Gedanke ist also, dass das Skript mit Headless Chrome schneller laufen würde.
Ist diese Annahme zuerst richtig, oder spielt es keine Rolle, wenn ich mein Skript mit einem kopflosen Treiber starte?
Trotzdem möchte ich immer noch, dass es funktioniert, um ohne Kopf zu laufen, aber irgendwie kann ich es nicht, ich habe verschiedene Dinge ausprobiert und die meisten haben vorgeschlagen, dass es funktionieren wird, wie hier im Oktober-Update gesagt
Aber wenn ich das versuche, bekomme ich seltsame Konsolenausgaben und es scheint immer noch nicht zu funktionieren.
Irgendwelche Tipps geschätzt.
Um Chrome-Headless auszuführen, fügen Sie einfach --headless
über chrome_options.add_argument
hinzu, d. H .:
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....
Mein Gedanke ist also, dass das Ausführen mit kopflosem Chrom meine Skript schneller.
Versuchen Sie, Chrome-Optionen wie --disable-extensions
oder --disable-gpu
zu verwenden, und führen Sie einen Benchmark-Test durch, aber ich würde nicht mit viel Verbesserung rechnen.
Referenzen: https://developers.google.com/web/updates/2017/04/4/headless-chrome
Wenn Sie eine Linux-Umgebung verwenden, müssen Sie möglicherweise auch --no-sandbox sowie bestimmte Fenstergrößeneinstellungen hinzufügen. --no-sandbox wird in Windows nicht benötigt, wenn Sie den Benutzercontainer richtig setzen.
disable-gpu Nur unter Windows. Andere Plattformen benötigen es nicht mehr. Das Flag --disable-gpu dient zur vorübergehenden Behebung einiger Fehler.
//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);