--Headless不是Chrome WebDriver for Selenium中的选项

guicsvcw  于 2023-11-14  发布在  Go
关注(0)|答案(4)|浏览(147)

我想让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是否允许无头浏览?

3xiyfsfu

3xiyfsfu1#

--headless不是chromedriver的参数,而是Chrome的参数。--headless在无头模式下运行Chrome,即没有UI或显示服务器依赖项。ChromeDriver是WebDriver用于控制Chrome的单独可执行文件,Webdriver是用于驱动浏览器的语言特定绑定的集合。
我可以使用这组选项在无头模式下运行。我希望这会有所帮助:

from bs4 import BeautifulSoup, NavigableString
from selenium.webdriver.chrome.options import Options
from selenium import webdriver
import requests
import re  
options = Options()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-gpu')
browser = webdriver.Chrome(chrome_options=options)  # see edit for recent code change.
browser.implicitly_wait(20)

字符串

更新2019年8月12日:

旧版:browser = webdriver.Chrome(chrome_options=options)
新:browser = webdriver.Chrome(options=options)

goucqfw6

goucqfw62#

试试

选项.headless=True
以下是我如何设置我的无头Chrome

options = webdriver.ChromeOptions()
options.headless=True
options.add_argument('window-size=1920x1080')
prefs = {
"download.default_directory": r"C:\FilePath\Download",
"download.prompt_for_download": False,
"download.directory_upgrade": True}
options.add_experimental_option('prefs', prefs)
chromedriver = (r"C:\Filepath\chromedriver.exe")

字符串

ippsafx7

ippsafx73#

--headlesschromedriver不是参数,而是Chrome,您可以看到Chrome here的更多参数或命令行开关

68de4m5k

68de4m5k4#

正如许多答案正确指出的那样,无头是Chrome的一个选项,而不是chromedriver。

除此之外:

  • 自Chrome 109以来有--headless=new,它将使用相同的Chrome。在此之前,Chrome和无头Chrome是两种不同的内置可执行文件(都是由Chrome安装程序和软件包安装的)
  • 某些答案建议使用选项。headless=True。不要。参见Headless is Going Away!

相关问题