如何下载XML文件以避免弹出窗口这种类型的文件可能会通过ChromeDriver和Chrome(使用Python中的Selenium)损坏您的计算机

时间:2019-03-28 21:51:08

标签: python selenium google-chrome selenium-webdriver selenium-chromedriver

我想从供应商那里下载每日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上运行脚本

不可能自动执行我的下载吗?

1 个答案:

答案 0 :(得分:2)

关于网页的一些详细信息,这些信息可能有助于调试弹出窗口的问题,这些文件可能是您从中尝试下载 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()
    
  • 浏览器快照:

xml_download