如何通过 HTTP 下载文件?

新手上路,请多包涵

我有一个小实用程序,用于按计划从网站下载 MP3 文件,然后构建/更新已添加到 iTunes 的播客 XML 文件。

创建/更新 XML 文件的文本处理是用 Python 编写的。但是,我在 Windows .bat 文件中使用 wget 来下载实际的 MP3 文件。我更喜欢用 Python 编写整个实用程序。

我很难找到一种在 Python 中实际下载文件的方法,因此我求助于使用 wget

那么,如何使用 Python 下载文件?

原文由 Owen 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 739
2 个回答

使用 urllib.request.urlopen()

 import urllib.request
with urllib.request.urlopen('http://www.example.com/') as f:
    html = f.read().decode('utf-8')

这是使用该库的最基本方法,减去任何错误处理。您还可以做更复杂的事情,例如更改标题。

在 Python 2 上,该方法位于 urllib2 中:

 import urllib2
response = urllib2.urlopen('http://www.example.com/')
html = response.read()

原文由 Corey 发布,翻译遵循 CC BY-SA 4.0 许可协议

还有一个,使用 urlretrieve

 import urllib.request
urllib.request.urlretrieve("http://www.example.com/songs/mp3.mp3", "mp3.mp3")

(对于 Python 2,使用 import urlliburllib.urlretrieve

原文由 PabloG 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题