我正在尝试从以下链接下载文件(市场摘要(结算)— ZIP):https : //dps.psx.com.pk/downloads
这是我的代码:
from datetime import date
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.common.exceptions import ElementClickInterceptedException
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
import time
profile = webdriver.FirefoxProfile()
profile.set_preference("browser.preferences.instantApply",True)
profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "text/csv")
profile.set_preference("browser.helperApps.alwaysAsk.force",False)
profile.set_preference("browser.download.manager.showWhenStarting",False)
profile.set_preference("browser.download.folderList",0)
driver = webdriver.Firefox(firefox_profile=profile)
driver.get('https://dps.psx.com.pk/downloads')
start_date = driver.find_element_by_id('downloadsDatePicker')
start_date.send_keys(Keys.BACKSPACE\*0)
send_date = date(2014,1,1).strftime("%Y-%m-%d")
start_date.send_keys(send_date)
driver.find_element_by_id('downloadsSearchBtn').click()
link = '/download/mkt_summary/{}.Z'.format(send_date)
time.sleep(5)
driver.find_element_by_css_selector("a[href='{}'".format(link)).click()
即使设置了首选项,firefox仍会弹出一个下载对话框。为什么会这样,如何避免这种行为?
问题来源:stackoverflow
根据您正在准备的站点和链接,您不是在下载csv文件,而是下载扩展名为.Z的zip文件。
您需要更改首选项“ browser.helperApps.neverAsk.saveToDisk”的代码,以允许从站点接收响应,如下所示。
profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream")
回答来源:stackoverflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。