下载文件,而不是内容

2024-10-03 09:12:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从一个网站自动下载一个.Z文件,但是我得到的文件是2kb,而它应该是700kb左右,并且它包含一个页面内容列表(即:所有可供下载的文件)。我可以下载它手动没有问题。我试过urllib和urllib2以及它们各自的不同配置,但是它们都做相同的事情。我应该补充一点,urlVar和fileName变量是在代码的不同部分生成的,但是我在这里给出了每个变量的一个示例来演示。你知道吗

import urllib2
urlVar = "ftp://www.ngs.noaa.gov/cors/rinex/2014/100/txga/txga1000.14d.Z"
fileName = txga1000.14d.Z
downFile = urllib2.urlopen(urlVar)
with open(fileName, "wb") as f:
    f.write(downFile.read())

Tags: 文件代码import示例内容列表网站页面
2条回答

至少urllib2文档建议您应该使用Request对象。这对我很有用:

import urllib2

req = urllib2.Request("ftp://www.ngs.noaa.gov/cors/rinex/2014/100/txga/txga1000.14d.Z")
response = urllib2.urlopen(req)
data = response.read()

数据长度似乎是740725。你知道吗

我可以用下面的python2代码下载您的文件的正确大小:

import urllib2
filename = "txga1000.14d.Z"
url = "ftp://www.ngs.noaa.gov/cors/rinex/2014/100/txga/{}".format(filename)
reply = urllib2.urlopen(url)
buf = reply.read()

with open(filename, "wb") as fh:
    fh.write(buf)

编辑:我上面的帖子回复得更快,也更好。。我想我应该在测试后发布,然后写出来。你知道吗

相关问题 更多 >