Kap*_*l D 9 python wget urllib2
我有一项任务是从网站下载Gbs数据.数据采用.gz文件格式,每个文件大小为45mb.
获取文件的简单方法是使用"wget -r -np -A files url".这将以递归格式下载数据并镜像网站.下载率非常高,每秒4mb.
但是,只是为了玩,我也使用python来构建我的urlparser.
通过Python的urlretrieve下载速度很慢,可能比wget慢4倍.下载速率为500kb /秒.我使用HTMLParser来解析href标签.
我不知道为什么会这样.有没有任何设置.
谢谢
urllib和wget一样快.试试这段代码.它显示了百分比的进度,就像wget一样.
import sys, urllib
def reporthook(a,b,c):
# ',' at the end of the line is important!
print "% 3.1f%% of %d bytes\r" % (min(100, float(a * b) / c * 100), c),
#you can also use sys.stdout.write
#sys.stdout.write("\r% 3.1f%% of %d bytes"
# % (min(100, float(a * b) / c * 100), c)
sys.stdout.flush()
for url in sys.argv[1:]:
i = url.rfind('/')
file = url[i+1:]
print url, "->", file
urllib.urlretrieve(url, file, reporthook)
Run Code Online (Sandbox Code Playgroud)
确实不应该有什么区别。urlretrieve 所做的只是发出一个简单的 HTTP GET 请求。您是否拿出数据处理代码并对 wget 与纯 python 进行了直接吞吐量比较?