我想直接下载PDF,而不是显示在Chrome的PDF视图插件中我找到的Python代码是
chromeOptions = webdriver.ChromeOptions()
prefs = {"plugins.plugins_disabled" : ["Chrome PDF Viewer"]}
chromeOptions.add_experimental_option("prefs",prefs)
driver=webdriver.Chrome('/usr/lib/chromium-browser/chromedriver', chrome_options=chromeOptions)
chromeOptions没有add_experimental_option函数/methodP。有没有办法让这件事成功。
以下是初始化chrome选项的正确方法:
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
我相信这是你的问题。我测试了这个代码,它对我有效:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
prefs = {"plugins.plugins_disabled" : ["Chrome PDF Viewer"]}
chrome_options.add_experimental_option("prefs",prefs)
driver=webdriver.Chrome(chrome_options=chrome_options)
有关更多信息,您可以阅读这里关于Selenium 的Chrome WebDriver API的文档
无论出于何种原因,方法add_experimental_option都不会出现。这可能是因为我使用的是Linux安装。我的目标是自动下载一系列PDF。解决方法是首先通过单击((命令查找web元素,在PDF查看器中获取PDF。这将PDF加载到查看器中,然后读取URL栏中的内容,使用PDF地址调用Linux操作系统运行dowload命令"wget"来获取PDF文件。即:
driver.find_element_by_class_name('browzine-direct-to-pdf-link').click()
pdfAddress=driver.current_url
os.system("wget %s -P /home/keir/Downloads/pdfs" % pdfAddress)