利用OpenSearch API检索和下载数据 附Python代码实例
在数据下载过程中,我们常常会需要下载非常多的数据文件,这时我们可以利用wget等软件或者编写数据下载脚本来实现数据下载的批处理。本文以利用Python脚本检索和下载https://s5phub.copernicus.eu/平台上的数据为例,概述了利用API检索和下载数据的一般过程和编程思路。
所需库文件
import requests
import re
另外,检索返回的数据信息格式为xml,所以也可以用xml库来提取信息。笔者比较懒所以直接将检索返回信息当成字符串用re库来处理。
背景概念
API(Application Programming Interface,应用程序接口)是一些预先定义的函数,或指软件系统不同组成部分衔接的约定。目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问原码,或理解内部工作机制的细节。(来自百度百科词条)
OpenSearch 关于这个可以参见它的Github:https://github.com/dewitt/opensearch/blob/master/opensearch-1-1-draft-6.md
数据检索
首先我们需要用requests库创建一个新的session来模拟浏览器对数据网站进行访问:
s = requests.Session()
s.headers['User-Agent'] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2)\
AppleWebKit/537.36 (KHTML, like Gecko)\
Chrome/34.0.1847.131 \
Safari/537.36'
这一部分是复制的别人的代码,基本来说创建session就照着这么写就没有问题,然后访问并登录数据网站,这个网站有一个公用的用户名s5qguest,我们就用它登录即可:
response = s.get('https://s5phub.copernicus.eu/',auth=("s5pguest","s5pguest"))
print(response.status_code)
我们将status code打印出来,如果是200的话说明可以正常访问。然后我们便可以进行数据检索: