我想从供应商处下载每日 xml 文件。我成功登录并单击链接“接受下载”以开始使用 chromedriver 下载。
但我收到弹出窗口“这种类型的文件可能会损害您的计算机”。页面的 MIME 是 text/html,我不确定链接是否是 text/javascript
我尝试了所有建议的解决方案,例如
print('Starting..')
prefs = {
'download.default_directory': 'C:\\Users\MainDesk\Downloads',
'download.prompt_for_download': False,
'download.extensions_to_open': 'xml',
'safebrowsing.enabled': False
}
options = Options()
options.add_experimental_option('prefs',prefs)
browser = webdriver.Chrome(options=options, executable_path='C:\\chromedriver.exe')
如何自动获取我的文件?
此外,我尝试进入 Chrome 的“设置”并关闭“要求保存文件”
我在 Windows 7 上运行脚本,使用 Python 3.7 和 Visual Studio 以及最新版本的 chromedriver
无法自动下载?
最佳答案
有关您尝试从何处下载xml文件的网页的更多信息可能有助于调试弹出窗口的问题文本为“这种类型的文件可能会以更好的方式损害您的计算机。
但是,这里是一个从 this webpage 下载 xml 文件的示例程序:
代码块:
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC prefs = { 'download.default_directory': 'C:/Utility/Downloads/', 'download.prompt_for_download': False, 'download.extensions_to_open': 'xml', 'safebrowsing.enabled': True } options = webdriver.ChromeOptions() options.add_experimental_option('prefs',prefs) options.add_argument("start-maximized") # options.add_argument("disable-infobars") options.add_argument("--disable-extensions") options.add_argument("--safebrowsing-disable-download-protection") options.add_argument("safebrowsing-disable-extension-blacklist") driver = webdriver.Chrome(options=options, executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe') driver.get("http://www.landxmlproject.org/file-cabinet") WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//span[text()='MntnRoad.xml']//following::span[1]//a[text()='Download']"))).click()
浏览器快照:
关于python - 如何下载 XML 文件避免弹出窗口这种类型的文件可能会通过 ChromeDriver 和 Chrome 使用 Python 中的 Selenium 损害您的计算机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57921721/