当前位置: 首页 > 面试题库 >

如何以“更智能”的方式使用python下载文件?

沈博达
2023-03-14
问题内容

我需要在Python中通过http下载多个文件。

最明显的方法就是使用urllib2:

import urllib2
u = urllib2.urlopen('http://server.com/file.html')
localFile = open('file.html', 'w')
localFile.write(u.read())
localFile.close()

但我不得不面对以某种方式是讨厌的网址,这样说:http://server.com/!Run.aspx/someoddtext/somemore?id=121&m=pdf。通过浏览器下载时,文件具有人类可读的名称,即。accounts.pdf

有什么办法可以在python中处理它,所以我不需要知道文件名并将其硬编码到脚本中?


问题答案:

像这样的下载脚本往往会推送一个标题,告诉用户代理该文件的名称:

Content-Disposition: attachment; filename="the filename.ext"

如果可以获取该标头,则可以获取正确的文件名。

还有另一个线程可以提供一些代码来进行Content-Disposition抓取。

remotefile = urllib2.urlopen('http://example.com/somefile.zip')
remotefile.info()['Content-Disposition']


 类似资料:
  • 问题内容: 我试图使用Python从Internet下载某些内容,但我使用的是urllib模块,但无法正常工作。我希望能够将下载的文件保存到我选择的位置。如果有人可以用清晰的例子向我解释如何做到这一点,将不胜感激。 问题答案: 我建议像这样使用urllib2: 您甚至可以将其缩短为(尽管,如果您打算将每个单独的调用括在-中,则不想将其缩短):

  • 我正在寻找一种在python中下载pdf文件的方法,我看到了关于推荐urllib模块的其他问题的答案。我试图用它下载一个pdf文件,但是当我试图打开下载的文件时,一条消息显示该文件无法打开。 错误消息 这是我使用的代码- 我做错了什么?此外,该文件会自动保存到python文件所在的目录中。如何更改它保存到的位置? 编辑-我再次尝试使用示例pdf的链接,http://unec.edu.az/appl

  • 问题内容: 这是我的情况:我必须登录到一个网站并从那里下载CSV,而从linux服务器无头。该页面使用JS,没有它就无法工作。 经过一些研究,我选择了Selenium和PhantomJS。登录,设置CSV参数并使用Selenium / PhantomJS / Py3查找下载按钮没有问题,实际上令人称奇。 但是单击下载按钮没有任何作用。经过一番研究,我发现PhantomJS似乎不支持下载对话框和下载

  • 我正在尝试下载https://occ.ca/our-publications 我的最终目标是解析PDF文件中的文本并定位某些关键字。 到目前为止,我已经能够抓取所有页面上PDF文件的链接。我已将这些链接保存到列表中。现在,我想浏览一下列表并用Python下载所有pdf文件。下载完文件后,我想对它们进行解析。 这是我迄今为止使用的代码: 这是我运行代码时遇到的错误。 回溯(最近的最后一次调用):ur

  • 问题内容: 我正在尝试使用selenium从网站下载pdf文件,但我能够打开文件,但无法使用代码自动下载。 码: 请提出建议。先感谢您 问题答案: 以上问题现已解决

  • 问题内容: 两部分的问题。我正在尝试从互联网档案中下载多个已存档的Cory Doctorow播客。我的iTunes提要中未包含的旧版本。我已经编写了脚本,但是下载的文件格式不正确。 问题1-如何更改以下载zip mp3文件?问题2-将变量传递到URL的更好方法是什么? 该脚本是从这里改编的 问题答案: 这是我处理URL构建和下载的方式。我确保将文件命名为url的基本名称(后跟斜杠后的最后一位),并