0

我正在编写一个 Python Webscraper,它需要能够单击下载按钮并将 PDF 保存到通过 XML 文件定义的位置。

我的代码有问题的部分如下:

profile = webdriver.FirefoxProfile()

download_Path = items.get(key = 'dir') # Get download path from XML.

if not os.path.exists(download_Path):
    os.makedirs(download_Path)

profile.set_preference("browser.helperApps.alwaysAsk.force", False)
profile.set_preference("browser.download.panel.shown", False)
profile.set_preference("browser.download.manager.useWindow", False)
profile.set_preference("webdriver_enable_native_events", False)
profile.set_preference("browser.helperApps.neverAsk.openFile", "application/pdf;")
profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/pdf;")
profile.set_preference("browser.download.folderList", 2)
profile.set_preference("browser.download.dir", download_Path)
profile.update_preferences()

driver = webdriver.Firefox(executable_path = DriverPath, options = options, firefox_profile = profile)

几乎一切正常,下载目录以预期的方式更改,因此可以profile.set_preferences正常工作,但其他首选项不会改变。我现在正在搜索一段时间,如您所见,我尝试了不同的选项,这样浏览器就不会要求打开文件或保存文件的位置,而只是将其移动到给定的目录中。

4

1 回答 1

0

我自己解决了。答案是,您必须使用以下代码单独配置集成在 Firefox(“PDF.js”)中的 PDF 阅读器:

profile.set_preferences("pdfjs.disable", True)

这就是其余的功能。

于 2021-12-06T14:34:50.233 回答