urllib.request for python 3.3无法下载文件

时间:2013-12-21 02:54:00

标签: python python-3.x download

我想用python下载一个大型存档文件并保存,但是urllib对我不起作用。这是我的代码:

    import urllib
    urllib.request("http://www.petercollingridge.co.uk/sites/files/peter/particle_tutorial_7.txt")

请注意,我在此示例中使用的链接不是大型存档。我只是以它为例。它直接链接到.txt文件,因此它应该工作。我收到了这个错误:

    Traceback (most recent call last):
    File "<pyshell#11>", line 1, in <module>
    urllib.request("http://www.petercollingridge.co.uk/sites/files/peter/particle_tutorial_7.txt")
    AttributeError: 'module' object has no attribute 'request'

在我看来,urllib在某种程度上被打破并且缺少“请求”方法。我使用的是Python 3.3。我应该使用其他模块还是实际上是Python问题?

3 个答案:

答案 0 :(得分:14)

不,它没有被打破。 The urllib.request documentation非常清楚如何运作:

import urllib.request
req = urllib.request.urlopen('http://www.google.com')
data = req.read()

编辑:如果您需要将文件直接写入磁盘而不是处理数据,请使用urlretrieve

urllib.request.urlretrieve('http://example.com/big.zip', 'file/on/disk.zip')

答案 1 :(得分:4)

要将网址下载到文件中,您可以使用urlretrieve() function

from urllib.request import urlretrieve
url = "http://www.petercollingridge.co.uk/sites/files/peter/particle_tutorial_7.txt"
urlretrieve(url, "result.txt")

答案 2 :(得分:1)

urllib2模块已经拆分为Python 3.0中名为urllib.request和urllib.error的几个模块。将源转换为3

时,2to3工具将自动调整导入
from urllib.request import urlopen

data = urlopen(r"http://www.petercollingridge.co.uk/sites/files/peter/particle_tutorial_7.txt")

print(data)