【问题标题】:Download file in python using urllib2 vs wget使用 urllib2 与 wget 在 python 中下载文件
【发布时间】:2018-10-23 19:34:54
【问题描述】:

我正在尝试在 python 中下载一个在线文件。我已经看到将 urllib2 用于 python 2 和 wget 的解决方案。如果我的目的只是下载文件,那么使用 urllib2 而不是 wget 有什么好处。对我来说,使用 wget 包似乎更简单。但是,我看到的大多数在线解决方案都是在 python 3 中使用 urllib2 和 urllib。我更倾向于 wget,因为它适用于 python 2 和 python 3。

这个问题与标记为重复的问题不同,因为我要求在 wget 方面有所不同,而另一个问题没有解决与 wget 包的关系。

【问题讨论】:

  • wget 要求您使用外部应用程序。 Python 程序应该总是更喜欢调用 Python 库而不是 shell。
  • requests 库也很棒,可用于 Python 2 和 3
  • This answer 准确展示了如何在 Python 2 或 3 中使用 urllib
  • @JonathonReinhart 你说的炮轰是什么意思。这是否意味着 wget 在后面运行一些 shell 命令。 wget 也是一个标准的 python 库,对吧?那么如何区分 python 和非 python 库呢?不过,从我现在阅读的内容来看,我认为 wget 不是一个好的选择。
  • 我的错误。我没有意识到这存在:wget,“纯 python 库”。我以为您指的是命令行实用程序wget。无论如何,requests 更为常见。

标签: python download wget urllib2 urllib3


【解决方案1】:

如果您使用wget,那么在需要解码发生的错误时,您最终会编写比 Python 库所需的代码多得多的代码。

然而,当谈到urllib - 首先,你确定你真的需要支持Python 2吗? Python 2 已经过时了。

如果你真的相信你这样做了,那么也许你可以使用诸如sixfuture 之类的兼容性库

您也应该考虑替代方案 - requests 库优于 urllib,并为 Python 2 和 3 提供相同的接口。

【讨论】:

  • @Anitti 经过更多阅读,我确信使用请求。但是,我很好奇您在谈论什么类型的错误,以及为什么当它存在于 PyPI 中并且应该是最新的时使用 wget 进行调试会很困难。如果你能举一些例子。此外,看到了一些答案,但只有少数答案,建议不要使用 urllib,因为它不如 wget (stackoverflow.com/questions/2777116/…) 成熟。你能评论一下吗?
猜你喜欢
  • 1970-01-01
  • 2011-06-13
  • 2011-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-16
相关资源
最近更新 更多