Python Selenium:从Blob URL下载时,Firefox neverAsk.saveToDisk

时间:2016-09-15 20:07:58

标签: python selenium firefox blob

我希望让Firefox使用selenium从这个Frankfurt stock exchange webpage下载主数据(下载,XLSX) Excel文件。

问题:我无法让Firefox下载文件,而不会先询问保存位置。

首先我要指出,我尝试从中获取Excel文件的网址实际上是一个Blob网址:

  

http://www.xetra.com/blob/1193366/b2f210876702b8e08e40b8ecb769a02e/data/All-tradable-ETFs-ETCs-and-ETNs.xlsx

也许Blob引起了我的问题?或者,问题可能出在我的MIME处理中?

from selenium import webdriver

profile_dir = "path/to/ff_profile"
dl_dir = "path/to/dl/folder"

ff_profile = webdriver.FirefoxProfile(profile_dir)

ff_profile.set_preference("browser.download.folderList", 2)
ff_profile.set_preference("browser.download.manager.showWhenStarting", False)
ff_profile.set_preference("browser.download.dir", dl_dir)
ff_profile.set_preference('browser.helperApps.neverAsk.saveToDisk', "text/plain, application/vnd.ms-excel, text/csv, text/comma-separated-values, application/octet-stream")

driver = webdriver.Firefox(ff_profile)

url = "http://www.xetra.com/xetra-en/instruments/etf-exchange-traded-funds/list-of-tradable-etfs"
driver.get(url)

dl_link = driver.find_element_by_partial_link_text("Master data")
dl_link.click()

1 个答案:

答案 0 :(得分:1)

在这种情况下使用的实际mime类型是:

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

我怎么知道?这就是我所做的:

  • 手动打开Firefox并导航到目标站点
  • 下载文件时,选中复选框以自动保存这些文件
  • 去了帮助 - >故障排除信息并导航到"配置文件夹"
  • 在个人资料文件夹中,foudn并打开mimetypes.rdf
  • mimetypes.rdf内找到了与我最近下载的excel文件对应的记录/资源