我正在使用 Selenium 抓取外部网页并下载 PDF 以进行自动数据分析。不幸的是,该网站有一个内部 PDF 查看器,这意味着我必须设置它的首选项以避免打印对话框并立即打开下载屏幕。但是,在此步骤中,我指定的保存为 PDF 的首选项失败,并被 Microsoft 打印到 PDF 选项覆盖,该选项删除了文本中存在的 XML 编码,从而禁用了我的数据分析能力。有谁对这个错误有任何解决方案,还是我的代码有问题?
这是我用于设置首选项和启动打印对话框的代码:
url = 'google.com' #url of the login page, actual link differs from this
webdriver_service = Service('C:/Users/liamw/Downloads/chromedriver_win32/chromedriver.exe')
chrome_options = Options()
chrome_options.add_experimental_option('prefs', {
'printing.print_preview_sticky_settings.appState': {
'recentDestinations': [{
'id': 'Save as PDF',
'origin': 'local'
}],
'selectedDestinationId': 'Save as PDF',
'version': 2
},
'savefile.default_directory': 'C:/Users/liamw/Downloads/CAM Download Directory'
})
chrome_options.add_argument('--kiosk-printing')
driver = webdriver.Chrome(service = webdriver_service, options = chrome_options)
driver.get(url)
...
driver.execute_script("window.print();")
我尝试尝试不同的偏好选项,但没有成功。我认为这会改变错误并按预期工作,但无济于事。任何和所有建议将不胜感激。
如果这可以帮助OP或任何人,请看看我在这个类似线程中的答案:Selenium chromedriver下载网页未另存为PDF