嗯,我正在做一个项目,它使用 selenium 来抓取一些电影文件并从网站上下载它们。一切正常,但我不想打开浏览器窗口并希望它在后台运行并最终显示结果而不调用浏览器。我尝试了很多方法,但都没有找到可靠的答案。 StackOverflow 上有与此相关的问题,但它们不适用于 Edge。其他问题的答案说明了如何添加此行。
from selenium.webdriver.Edge.options import Options
options = Options()
options.headless = True
driver = webdriver.Edge(executable_path="msedgedriver.exe", options=options)
但这对我不起作用,并弹出以下错误。
File "movies.pyx", line 11, in init movies
driver = webdriver.Edge(executable_path="msedgedriver.exe", options=options)
TypeError: __init__() got an unexpected keyword argument 'options'
我也试过看到很多类似问题的答案,但没有任何效果。如果有人知道请回答,我会提前感谢您。
好吧,我使用的是 python 3.7.7
答案 0 :(得分:0)
它不是直接解决问题的方法,而是一种替代方法,我认为您可以查看这个简单的库:https://pypi.org/project/activesoup/
<块引用>activesoup 结合了熟悉的 python web 功能,方便使用 无头“浏览”功能。 [...] 在以下情况下考虑使用 activesoup: [...] 您需要积极互动 使用 Python 中的一些网页(例如 提交表单、下载 文件)
答案 1 :(得分:0)
您正在使用 Microsoft Edge webdriver。 您尝试使其无头的方式适用于 chrome webdriver。
options = EdgeOptions()
options.use_chromium = True
options.add_argument("headless")
options.add_argument("disable-gpu")
通过导入试试上面的代码:
from msedge.selenium_tools import EdgeOptions
from msedge.selenium_tools import Edge
注意:您必须启用 Chrome 才能启用 headless。