Reference
http://www.apache.org/dyn/closer.cgi?path=/cassandra/2.0.4/apache-cassandra-2.0.4-bin.tar.gz
http://docs.python.org/3/library/urllib.request.html#module-urllib.request
Description
用 urllib 下載 cassandra 到本地
Codes
簡單的方式
import urllib.request with urllib.request.urlopen('http://ftp.tc.edu.tw/pub/Apache/cassandra/2.0.4/apache-cassandra-2.0.4-bin.tar.gz') as f: with open('d:/apache-cassandra-2.0.4-bin.tar.gz','wb') as target: target.write(f.read())
如果想要看進度可以這樣
import urllib.request with urllib.request.urlopen('http://ftp.tc.edu.tw/pub/Apache/cassandra/2.0.4/apache-cassandra-2.0.4-bin.tar.gz') as f: with open('d:/apache-cassandra-2.0.4-bin.tar.gz','wb') as target: filesize = f.getheader('Content-Length') wrotesize = 0 while True: if wrotesize == int(filesize): break wrotesize += target.write(f.read(1024)) print('download...',wrotesize,'of',filesize)
想從公司內的 Maven download 還需要認證
import urllib.request pwdmgr = urllib.request.HTTPPasswordMgrWithDefaultRealm() pwdmgr.add_password(None,'http://mvn.company.site','myid','mypw') auth_handler = urllib.request.HTTPBasicAuthHandler(pwdmgr) opener = urllib.request.build_opener(auth_handler) urllib.request.install_opener(opener) with urllib.request.urlopen('http://mvn.company.site/downloadfile.zip') as f: with open('d:/downloadfile.zip','wb') as target: target.write(f.read())
後記
還不太清楚 HTTPBasicAuthHandler 的 realm 要怎麼指定正確,
使用 Maven response 的 realm 也不行.
只好先用 HTTPPasswordMgrWithDefaultRealm 了...
只好先用 HTTPPasswordMgrWithDefaultRealm 了...
沒有留言:
張貼留言