我实际上使用的是selenium,我需要获取可以使用下载的文件
driver.get_downloadable_files(),
但我收到以下错误:
Exception has occurred: WebDriverException
Message: You must enable downloads in order to work with downloadable files.
File "/Users/abderrahim/Documents/alertes_aggregator/utils/profile_extractor.py", line 81, in linkedin_profile
pdf = driver.get_downloadable_files()*
这个问题有什么解决办法吗?知道我已经添加了实验选项:
options.add_argument("--disable-popup-blocking")
options.add_experimental_option("prefs", {
"download.default_directory": r"/Users/abderrahim/Documents/cv_apec",
"download.prompt_for_download": False
})
我尝试了几种解决方案,但似乎都不起作用,有什么建议吗?
查看 selenium 的文档 这里
表示下载:
在网格中启用下载 无论是哪个客户端,在节点或独立模式下启动网格时,必须添加标志:
--enable-managed-downloads true
在客户端中启用下载 网格使用 se:downloadsEnabled 功能来切换是否负责管理浏览器位置。每个绑定在选项类中都有一个方法来设置它。
对于蟒蛇:
options = webdriver.ChromeOptions()
options.enable_downloads = True
driver = webdriver.Remote(command_executor=server, options=options)
然后你就这样列出
files = driver.get_downloadable_files()
然后下载
driver.download_file(downloadable_file, target_directory)
有关 guthub 上从 selenium 文档下载部分的完整示例,请检查此处
这似乎有很多代码,而自定义设置并不通用,并且仅适用于基于 Chromium 的浏览器。这就是我创建 Browserist 包的原因,这样您就不必担心细节(例如,默认情况下已启用下载)。
在文档中查找有关下载文件的方法的更多信息。
也许这样的东西会起作用?
from browserist import Browser, BrowserSettings
settings = BrowserSettings(
download_dir="/Users/abderrahim/Documents/cv_apec"
)
with Browser(settings) as browser:
browser.open.url("https://example.com")
pdf_file_path = browser.click.download_and_get_file_path("//xpath/to/pdf/link")
print(pdf_file_path)
预期的输出将是这样的:
/Users/abderrahim/Documents/cv_apec/file.pdf
如果您更喜欢在启动浏览器设置后直接使用 Selenium WebDriver,您可以随时执行以下操作:
from browserist import Browser, BrowserSettings
settings = BrowserSettings(
download_dir="/Users/abderrahim/Documents/cv_apec"
)
with Browser(settings) as browser:
driver = browser.driver
driver.get_downloadable_files()
完全公开,我是 Browserist 包的作者。 Browserist 是 Selenium Web 驱动程序的轻量级、简洁的扩展,使浏览器自动化变得更加容易。
只需使用
pip install browserist
安装软件包即可开始使用。