有没有办法在使用Selenium开始下载文件时更改文件的文件名?

时间:2017-12-31 05:50:29

标签: python selenium

我想从一个网站下载多个文件,但我最大的怪癖是服务器在请求下载文件时自动生成随机文件名。这里的问题是,我不知道哪个文件是哪个,而不必手动浏览每个文件。但是,在具有下载文件链接的站点上,它们都有一个名称。例如......

File name     ->  Resultant file name(fake file names)
Week1.pdf         2asd123e.pdf
Week1_1.jpg       dsfgp142.jpg
.           
.
Week10.pdf        19fgmo2o.pdf
Week11.pdf        0we5984w.pdf

如果我自己手动下载它们,我会点击“下载”,弹出“另存为”菜单,这样我就可以选择手动更改文件名,然后点击确定确认下载,它开始下载。

目前,我的代码是打开网站,登录我的帐户,转到文件页面,然后找到一个文件,带有相应的服务器请求链接。 IE :.我能够将文件名“Week1.pdf”存储到变量中,然后单击请求链接,但唯一的问题是“另存为”菜单,无法更改名称filename,只提供查看文件的选项,或立即保存文件。我环顾四周,尝试使用Firefox配置文件设置,但没有任何效果。我该如何解决这个问题?

由于

1 个答案:

答案 0 :(得分:0)

我可以想到你可能尝试的一些事情......

  1. 保存文件后,使用时间戳在下载文件夹中查找最近保存的文件(具有正确的扩展名)。只要您没有运行此线程,这可能就行了。

  2. 获取下载目录中的文件列表,下载文件,找到文件列表中不存在的文件。除非你运行这个线程,否则这应该是安全的。

  3. 创建一个新文件夹,将下载目录设置为新创建的文件夹,下载该文件。它应该是该目录中唯一的文件。据我所知,您只能在创建驱动程序实例之前设置下载目录。

  4. 在每种情况下,如果您打算下载多个文件,我会在您下载文件时重命名这些文件,或者将它们移动到某个已知目录中,以方便您自己。

    我在another answer中遇到了另一种方法。