【发布时间】:2014-02-05 22:42:50
【问题描述】:
我知道几周前我在某个地方看到过答案,但现在找不到了。
Python 3.3 中的简单 urllib.urlretrieve。你怎么做呢?我正在尝试下载 mp4/html(页面不存在)方案,如果页面不存在,则为 mp4(如果文件大小太小,我可以删除文件,否则保留) .
我的代码运行良好,完全符合我在 2.7 中的要求,但在 3.3 中不起作用。
我正在处理两个版本的 Python 之间让我头疼的 Tkinter 和 urllib。 Tkinter 在 3.3 中可以正常工作,但 urllib 不能,并且 urllib 在 2.7 中可以正常工作,但 Tkinter 不能。如何在 3.3 中正确下载?
我知道 3.3 更改了 urllib,但我找不到一两周前看到的内容来指导我正确的方向。
当我添加 Tkinter 转换时,2.7 几乎什么也没做,而 3.3 刚刚出现并给我 urllib 没有属性 'urlretrieve;。我更喜欢 3.3。
【问题讨论】:
-
请发布您在 2.7 中工作的代码。
-
在 Python 3 中
urlretrieve在urllib.request中。 -
我意识到并在尝试
import urllib.request然后是urllib.request.urlretrieve时打败了自己。它的功能不一样。它没有出现并下载 html 文件,它的大小告诉我它不是我正在寻找的 mp4 文件,而是不断出现并给我 HTTTPError: HTTP Error 404 Not Found。在 2.7 中它会下载我删除的 html 文件,在 3.3 中它只是将我标记回错误。有办法解决吗? -
对不起,只是更加关注下面的答案,它部分工作,但我确实看到我还有另一个问题要处理。我正在线程内部执行此操作。它现在给我错误“未定义全局名称“urllib”。我必须导入到每个线程中吗?
-
请注意,
urlretrieve被专门称为“遗留函数”,可能很快就会在文档中被弃用。在 2.7 中,它位于“遗留模块”urllib中,不应在新代码中使用。那么……你为什么首先使用它?