我想用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问题?
答案 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)