使用python3批量下载rbsp数据的示例代码


Posted in Python onDecember 20, 2019

1. 原始网站
https://www.rbsp-ect.lanl.gov/data_pub/rbspa/

2. 算法说明
进入需要下载的数据所在的目录,获取并解析该目录下的信息,解析出cdf文件名后,将cdf文件下载到内存中,随后保存到硬盘中。程序使用python3实现。

3. 程序代码

#!/bin/python3
# get the rbsp data
# writen by Liangjin Song on 20191219
import sys
import requests
from pathlib import Path

# the url containing the cdf files
url="https://www.rbsp-ect.lanl.gov/data_pub/rbspa/ECT/level2/2016/"
# local path to save the cdf file
path="/home/liangjin/Downloads/test/"

def main():
  re=requests.get(url)
  html=re.text
  cdfs=resolve_cdf(html)

  ncdf=len(cdfs)
  if ncdf == 0:
    return

  print(str(ncdf) + " cdf files are detected.")

  i=1
  # download 
  for f in cdfs:
    rcdf=url+f
    lcdf=path+f
    print(str(i)+ "  Downloading " + rcdf)
    download_cdf(rcdf,lcdf)
    i+=1
  return

# resolve the file name of cdf
def resolve_cdf(html):
  cdfs=list()
  head=html.find("href=")
  
  if head == -1:
    print("The cdf files not found!")
    return cdfs

  leng=len(html)

  while head != -1:
    tail=html.find(">",head,leng)
    # Extract the cdf file name
    cdf=html[head+6:tail-1]
    head=html.find("href=",tail,leng)
    if cdf.find('cdf') == -1:
      continue
    cdfs.append(cdf)
  return cdfs

def download_cdf(rcdf,lcdf):
  rfile=requests.get(rcdf)
  with open(lcdf,"wb") as f:
    f.write(rfile.content)
  f.close()
  return

if __name__ == "__main__":
  lpath=Path(path)
  if not lpath.is_dir():
    print("Path not found: " + path)
    sys.exit(0)
  sys.exit(main())

4. 使用说明

url为远程cdf文件所在路径。
path为本地保存cdf文件的路径。
url和path的末尾都有“/”(Linux下情形,若是Windows,路径分隔符为“\\”,则path末尾应为“\\”)。

5. 运行效果

使用python3批量下载rbsp数据的示例代码

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python标准库defaultdict模块使用示例
Apr 28 Python
详解Python中的Cookie模块使用
Jul 06 Python
Python3之简单搭建自带服务器的实例讲解
Jun 04 Python
python障碍式期权定价公式
Jul 19 Python
详解程序意外中断自动重启shell脚本(以Python为例)
Jul 26 Python
Atom Python 配置Python3 解释器的方法
Aug 28 Python
python中web框架的自定义创建
Sep 08 Python
基于python监控程序是否关闭
Jan 14 Python
Python使用PyQt5/PySide2编写一个极简的音乐播放器功能
Feb 07 Python
Window系统下Python如何安装OpenCV库
Mar 05 Python
python语言的优势是什么
Jun 17 Python
Python Matplotlib绘制两个Y轴图像
Apr 13 Python
Python使用QQ邮箱发送邮件报错smtplib.SMTPAuthenticationError
Dec 20 #Python
Python字符串、列表、元组、字典、集合的补充实例详解
Dec 20 #Python
python获取网络图片方法及整理过程详解
Dec 20 #Python
python序列化与数据持久化实例详解
Dec 20 #Python
爬虫代理池Python3WebSpider源代码测试过程解析
Dec 20 #Python
python3的UnicodeDecodeError解决方法
Dec 20 #Python
基于python调用psutil模块过程解析
Dec 20 #Python
You might like
在PHP中使用灵巧的体系结构
2006/10/09 PHP
PHP Hash算法:Times33算法代码实例
2015/05/13 PHP
老版本PHP转义Json里的特殊字符的函数
2015/06/08 PHP
Laravel框架实现修改登录和注册接口数据返回格式的方法
2018/08/17 PHP
php如何比较两个浮点数是否相等详解
2019/02/12 PHP
Laravel框架处理用户的请求操作详解
2019/12/20 PHP
JavaScript 乱码问题
2009/08/06 Javascript
Javascript alert消息换行的方法
2013/08/07 Javascript
基于jQuery实现下拉框
2014/11/24 Javascript
JS实用的动画弹出层效果实例
2015/05/05 Javascript
JavaScript实现简洁的俄罗斯方块完整实例
2016/03/01 Javascript
举例讲解如何判断JavaScript中对象的类型
2016/04/22 Javascript
jQuery实现下拉框功能实例代码
2016/05/06 Javascript
jQuery插件学习教程之SlidesJs轮播+Validation验证
2016/07/12 Javascript
js 打开新页面在屏幕中间的实现方法
2016/11/02 Javascript
easyui-datagrid特殊字符不能显示的处理方法
2017/04/12 Javascript
react router4+redux实现路由权限控制的方法
2018/05/03 Javascript
vue实现与安卓、IOS交互的方法
2018/11/02 Javascript
HTML+JavaScript实现扫雷小游戏
2019/09/30 Javascript
js实现打字小游戏
2019/12/17 Javascript
微信小程序实现日历签到
2020/09/21 Javascript
Python Flask框架模板操作实例分析
2019/05/03 Python
使用openCV去除文字中乱入的线条实例
2020/06/02 Python
新手常见Python错误及异常解决处理方案
2020/06/18 Python
python在一个范围内取随机数的简单实例
2020/08/16 Python
仿酷狗html5手机音乐播放器主要部分代码
2013/05/15 HTML / CSS
H5离线存储Manifest原理及使用
2020/04/28 HTML / CSS
澳大利亚领先的在线美容商店:Facial Co
2017/10/22 全球购物
牵手50台湾:专为黄金岁月的单身人士而设的交友网站
2021/02/18 全球购物
俄罗斯品牌服装在线商店:VIPAVENUE
2020/08/10 全球购物
法国在线药房:1001Pharmacies
2021/03/07 全球购物
买房子个人收入证明
2014/01/16 职场文书
2014年社区重阳节活动策划方案
2014/09/16 职场文书
欢迎新生标语
2014/10/06 职场文书
优秀团员事迹材料
2014/12/25 职场文书
教师反邪教心得体会
2016/01/15 职场文书