批量下载数据集

在这里插入图片描述
在一个网页上下载如图所示的分散的文件,此网站最起码有好几百个这样的文件,如果通过单击方式,得点几百次呢!
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 不通
后来通过大佬博客才解决了棘手的问题。现在终于可以批量下载了,美滋滋。
上一篇:多元线性回归分析练习题
下一篇:数据挖掘之缺失值插补实验

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值