我想让Selenium运行一个无头的Google Chrome示例,以在没有UI开销的情况下从某些网站挖掘数据。我从here下载了ChromeDriver可执行文件,并将其复制到我当前的脚本目录。
该驱动程序似乎与Selenium配合使用,并且能够自动浏览,但我似乎找不到无头选项。大多数在线使用Selenium与无头Chrome的示例都是沿着这样的线路:
import os
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument("--headless")
chrome_options.binary_location = '/Applications/Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary'`
driver = webdriver.Chrome(executable_path=os.path.abspath(“chromedriver"), chrome_options=chrome_options)
driver.get("http://www.duo.com")`
字符串
然而,当我使用chromedriver -h
命令检查Selenium WebDriver的可能参数时,我得到了以下结果:
D:\Jobs\scripts>chromedriver -h
Usage: chromedriver [OPTIONS]
Options
--port=PORT port to listen on
--adb-port=PORT adb server port
--log-path=FILE write server log to file instead of stderr, increases log level to INFO
--log-level=LEVEL set log level: ALL, DEBUG, INFO, WARNING, SEVERE, OFF
--verbose log verbosely (equivalent to --log-level=ALL)
--silent log nothing (equivalent to --log-level=OFF)
--append-log append log file instead of rewriting
--replayable (experimental) log verbosely and don't truncate long strings so that the log can be replayed.
--version print the version number and exit
--url-base base URL path prefix for commands, e.g. wd/url
--whitelisted-ips comma-separated whitelist of remote IP addresses which are allowed to connect to ChromeDriver
型
没有--headless
选项可用。
从上面的链接获得的ChromeDriver是否允许无头浏览?
4条答案
按热度按时间3xiyfsfu1#
--headless
不是chromedriver
的参数,而是Chrome
的参数。--headless
在无头模式下运行Chrome,即没有UI或显示服务器依赖项。ChromeDriver是WebDriver用于控制Chrome的单独可执行文件,Webdriver是用于驱动浏览器的语言特定绑定的集合。我可以使用这组选项在无头模式下运行。我希望这会有所帮助:
字符串
更新2019年8月12日:
旧版:
browser = webdriver.Chrome(chrome_options=options)
新:
browser = webdriver.Chrome(options=options)
goucqfw62#
试试
选项.headless=True
以下是我如何设置我的无头Chrome
字符串
ippsafx73#
--headless
是chromedriver
的不是参数,而是Chrome
,您可以看到Chrome here的更多参数或命令行开关68de4m5k4#
正如许多答案正确指出的那样,无头是Chrome的一个选项,而不是chromedriver。
除此之外:
--headless=new
,它将使用相同的Chrome。在此之前,Chrome和无头Chrome是两种不同的内置可执行文件(都是由Chrome安装程序和软件包安装的)