如果要通过HTTP下载远程文件,则需要设置
Range标题。
在此示例中检查如何完成。看起来像这样:
myUrlclass.addheader("Range","bytes=%s-" % (existSize))编辑 :我刚刚发现一个更好的实现。此类很容易使用,因为可以在文档字符串中看到。
class HTTPRangeHandler(urllib2.baseHandler):"""Handler that enables HTTP Range headers.This was extremely simple. The Range header is a HTTP feature tobegin with so all this class does is tell urllib2 that the "206 Partial Content" reponse from the HTTP server is what we expected.Example: import urllib2 import byterange range_handler = range.HTTPRangeHandler() opener = urllib2.build_opener(range_handler) # install it urllib2.install_opener(opener) # create Request and set Range header req = urllib2.Request('http://www.python.org/') req.header['Range'] = 'bytes=30-50' f = urllib2.urlopen(req)"""def http_error_206(self, req, fp, pre, msg, hdrs): # 206 Partial Content Response r = urllib.addinfourl(fp, hdrs, req.get_full_url()) r.pre = pre r.msg = msg return rdef http_error_416(self, req, fp, pre, msg, hdrs): # HTTP's Range Not Satisfiable error raise RangeError('Requested Range Not Satisfiable')更新
:“更好的实现”已移至github:byterange.py文件中的excid3
/ urlgrabber。



