【问题标题】:Python Selenium: Firefox neverAsk.saveToDisk when downloading from Blob URLPython Selenium:从 Blob URL 下载时的 Firefox neverAsk.saveToDisk
【发布时间】:2016-09-15 20:07:57
【问题描述】:

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

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

首先让我指出,我试图从中获取 Excel 文件的 URL 实际上是一个 Blob URL:

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()

【问题讨论】:

    标签: python selenium firefox blob


    【解决方案1】:

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

    application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
    

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

    • 手动打开 Firefox 并导航到目标站点
    • 下载文件时,勾选复选框以自动保存此类文件
    • 转到帮助 -> 故障排除信息并导航到“配置文件文件夹”
    • 在配置文件文件夹中,找到并打开mimetypes.rdf
    • mimetypes.rdf里面找到了我最近下载的excel文件对应的记录/资源

    【讨论】:

    • 感谢 Alex 的回答和指导。这个answer 似乎也很有用。
    猜你喜欢
    • 2017-01-23
    • 2020-03-29
    • 2020-08-04
    • 1970-01-01
    • 1970-01-01
    • 2017-09-27
    • 1970-01-01
    • 2021-10-29
    • 1970-01-01
    相关资源
    最近更新 更多