首页 > 解决方案 > 在当前文件夹中下载 excel 文件而不是“下载”

问题描述

我正在尝试从网站下载使用 Python 中的 Selenium 的 excel 文件我需要将文件下载到当前文件夹而不是“下载”

但它不起作用,它正在下载文件夹中下载它

mime_types = [
    'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
]
options = Options()
options.set_preference("browser.download.folderList",2)
options.set_preference("browser.download.manager.showWhenStarting", False)
options.set_preference("browser.download.dir","./")
options.set_preference("browser.helperApps.neverAsk.saveToDisk", ",".join(mime_types))

s = Service(GeckoDriverManager().install())
driver = webdriver.Firefox(service=s, options=options)

driver.get("https://chartink.com/screener/close-below-bb-205")
WebDriverWait(driver, 2).until(EC.element_to_be_clickable((By.XPATH, "/html/body/div[2]/div[2]/div[2]/div/div/div/div[2]/div/div[2]/div[6]/div[1]/div/div[1]/div/button[3]"))).click()

请让我知道代码有什么问题?

标签: pythonpython-3.xseleniumselenium-webdriverselenium-firefoxdriver

解决方案


要在指定目录中使用 Python 中的 Selenium 下载文件,您需要调整以下about:config条目:

browser_download_dir


解决方案

因此,一个可行的解决方案是创建一个FirefoxProfile,然后创建一个新目录以便稍后下载其中的文件,如下所示:

newpath = 'C:\\home\\vivvin\\shKLSE'
if not os.path.exists(newpath):
    os.makedirs(newpath)    

profile = webdriver.FirefoxProfile()
profile.set_preference("browser.download.dir",newpath);
profile.set_preference("browser.download.folderList",2);

参考

您可以在以下位置找到一些详细的讨论:


推荐阅读