我正在尝试从网站自动下载.Z文件,但是我得到的文件是2kb,当它应该是大约700 kb并且它包含页面内容的列表(即:所有可用的文件下载)。我可以手动下载它没有问题。我已经尝试了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())
答案 0 :(得分: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。
答案 1 :(得分:1)
我能够使用以下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)
编辑:我上面的帖子得到了更快的回答,而且好多了......我以为自从我测试并发布以后就发布了这篇帖子。