Rhy*_*den 13 python selenium google-chrome selenium-chromedriver google-chrome-headless
所以我正在尝试一些硒处理方法,我真的希望它能很快。
所以我的想法是,使用无头的chrome运行它可以使我的脚本更快。
首先,该假设是正确的,还是如果我使用无头驱动程序运行脚本并不重要?
无论如何,我仍然希望它能够正常运行,但是我不知何故,我尝试了不同的方法,并且大多数人建议它可以如十月更新中所说的那样工作
如何配置ChromeDriver通过Selenium以无头模式启动Chrome浏览器?
但是当我尝试这样做时,我得到了奇怪的控制台输出,但它似乎仍然不起作用。
任何小费表示赞赏。
Ped*_*ito 26
要运行chrome-headless,只需添加--headlessvia chrome_options.add_argument,即:
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(options=chrome_options)
start_url = "https://duckgo.com"
driver.get(start_url)
print(driver.page_source.encode("utf-8"))
driver.quit()
# b'<!DOCTYPE html><html xmlns="http://www....
Run Code Online (Sandbox Code Playgroud)
所以我的想法是,使用无头的chrome运行它可以使我的脚本更快。
尝试使用诸如--disable-extensions或的chrome选项--disable-gpu并对其进行基准测试,但我认为不会有太多改进。
参考:无头铬
注意:从今天开始,当无头运行chrome时, 如果您在Windows上运行,则应包括--disable-gpu标志。参见crbug.com/737678。
Max*_*ysh 11
安装并运行容器化 Chrome:
docker pull selenium/standalone-chrome
docker run --rm -d -p 4444:4444 --shm-size=2g selenium/standalone-chrome
Run Code Online (Sandbox Code Playgroud)
连接使用webdriver.Remote:
driver = webdriver.Remote('http://localhost:4444/wd/hub', DesiredCapabilities.CHROME)
driver.set_window_size(1280, 1024)
driver.get('https://www.google.com')
Run Code Online (Sandbox Code Playgroud)
如果您使用的是 Linux 环境,可能还需要添加--no-sandbox特定的窗口大小设置。--no-sandbox如果正确设置用户容器,则 Windows 上不需要该标志。
使用--disable-gpu仅适用于Windows。其他平台不再需要它。该--disable-gpu标志是一些错误的临时解决方法。
//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);
Run Code Online (Sandbox Code Playgroud)
from time import sleep
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument("--headless")
driver = webdriver.Chrome(executable_path="./chromedriver", options=chrome_options)
url = "https://stackoverflow.com/questions/53657215/running-selenium-with-headless-chrome-webdriver"
driver.get(url)
sleep(5)
h1 = driver.find_element_by_xpath("//h1[@itemprop='name']").text
print(h1)
Run Code Online (Sandbox Code Playgroud)
然后我在我们的本地机器上运行脚本
? python script.py
Running Selenium with Headless Chrome Webdriver
Run Code Online (Sandbox Code Playgroud)
它正在工作,并且与无头 Chrome 一起使用。
| 归档时间: |
|
| 查看次数: |
26136 次 |
| 最近记录: |