批量下載資料集
阿新 • • 發佈:2018-12-20
在一個網頁上下載如圖所示的分散的檔案,此網站最起碼有好幾百個這樣的檔案,如果通過單擊方式,得點幾百次呢!
python2程式碼迴圈下載,試了一下,此程式碼只適合http協議的,如果是ftp協議就不好使了。
import re import sys import urllib def getHtml(url): page = urllib.urlopen(url) html = page.read() return html def down_file(url): file_name = url.split('/')[-1] print file_name u = urllib.urlopen(url) f = open(file_name, 'wb') meta = u.info() file_size = int(meta.getheaders("Content-Length")[0]) file_size_dl = 0 block_sz = 8192 while True: buffer = u.read(block_sz) if not buffer: break file_size_dl += len(buffer) f.write(buffer) f.close() def getFile(html): compile_rule=re.compile(r'<a.*?href=".+".*?>(.*).tar.gz</a>') url_list=re.findall(compile_rule, html) str = r'.tar.gz' for one in url_list: url = "http://mirrors.ustc.edu.cn/gnome/desktop/2.91/2.91.2/sources/" +one+str print url down_file(url) return url_list html = getHtml("http://mirrors.ustc.edu.cn/gnome/desktop/2.91/2.91.2/sources/") print getFile(html)
ftp協議的咋辦?我的方法是通過linux命令進行操作。因為我所要學習hadoop的專案,需要溫度資料集。
於是,執行命令wget -D --accept-regex=REGEX -P data -r -c ftp://ftp.ncdc.noaa.gov/pub/data/noaa/2017/5*,結果出現wget: unable to resolve host address情況,簡而言之,就是訪不進外網,ping www.baidu.com也ping 不通
後來通過大佬部落格才解決了棘手的問題。現在終於可以批量下載了,美滋滋。
上一篇:多元線性迴歸分析練習題
下一篇:資料探勘之缺失值插補實驗