1. 程式人生 > >批量下載資料集

批量下載資料集

在這裡插入圖片描述
在一個網頁上下載如圖所示的分散的檔案,此網站最起碼有好幾百個這樣的檔案,如果通過單擊方式,得點幾百次呢!
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 不通
後來通過大佬部落格才解決了棘手的問題。現在終於可以批量下載了,美滋滋。
上一篇:多元線性迴歸分析練習題
下一篇:資料探勘之缺失值插補實驗