如何获得 Selenium (Firefox) 的无头浏览器?

How to Get a Headless Browser for Selenium (Firefox)?

所以最近我正在研究尝试为 Selenium 获取一个用于网络抓取的无头浏览器,我在多个网站上遇到了这个解决方案

from selenium import webdriver

geckodriver = 'C:UsersgraysonDownloadsgeckodriver.exe'

headOption = webdriver.FirefoxOptions()
HeadOption.setheadless()

browser = webdriver.Firefox(executable_path=geckodriver, firefox_options=headOption)

browser.get('https://www.duckduckgo.com')

browser.save_screenshot('C:UsersgraysonDownloadsheadless_firefox_test.png')

browser.quit()

然而,在尝试使用此 code.From 中的属性和参数时,我仍然遇到错误,据我所知,它们似乎已经过时了。解决这个问题的方法是什么?

from selenium import webdriver

geckodriver = 'C:UsersgraysonDownloadsgeckodriver.exe'

headOption = webdriver.FirefoxOptions()
headOption.**add_argument('-headless')**

browser = webdriver.Firefox(executable_path=geckodriver, **options**=headOption)

browser.get('https://www.duckduckgo.com')

browser.save_screenshot('C:UsersgraysonDownloadsheadless_firefox_test.png')

browser.quit()

星号表示差异。基本上 Selenium 不再喜欢 '.setheadless' 属性 并且已经用 "options"

替换了 "firefox_options" 参数

希望对您有所帮助

不要在不理解其作用的情况下从网上复制粘贴代码。

firefox 选项没有任何类似 setHeadless 的方法,但有一个 属性 称为 headless

headOption = webdriver.FirefoxOptions()
headOption.headless = True
driver = webdriver.Firefox(options=headOption)

你可以像这样设置 headless 或通过传递参数

headOption = webdriver.FirefoxOptions()
headOption.add_argument("--headless")
driver = webdriver.Firefox(options=headOption)

两者做同样的事情,headless 属性 传递参数 --headless under the hood