1、环境云网站:http://www.envicloud.cn/
网站中包含全国各地关于环境方面的数据,我们这次只读取了广东省24小时天气历史数据。
2、关于接口参考环境云帮助页面
3、代码使用python语言实现
4、爬取需要key,免费申请
5、爬取后的数据保存在oracle中,所以需要cx_Oracle插件。
安装方式在https://oracle.github.io/python-cx_Oracle/中查询
我使用命令行执行python -m pip install cx_Oracle --upgrade
网站中包含全国各地关于环境方面的数据,我们这次只读取了广东省24小时天气历史数据。
2、关于接口参考环境云帮助页面
3、代码使用python语言实现
4、爬取需要key,免费申请
5、爬取后的数据保存在oracle中,所以需要cx_Oracle插件。
安装方式在https://oracle.github.io/python-cx_Oracle/中查询
我使用命令行执行python -m pip install cx_Oracle --upgrade
即可安装完毕
#coding:utf-8 #用于显示代码中的汉字
'''
简介:
天气数据获取脚本
数据获取流程(需要条件:环境云密钥):
1.首先在数据库中读取需要抓取气象数据的城市数据,这部分也可以直接在环境云网站爬取
2.通过环境云API接口获取天气数据
3.对第二步中产生的JSON格式数据进行处理存入到数据库
'''
import json,sys,urllib2,time,os
import pandas as pd
import cx_Oracle
import datetime
reload(sys)#调用setdefaultencoding时必须要先reload一次sys模块
sys.setdefaultencoding('utf8')
''' 获取监测站信息(即城市信息。
这里注意,以广州为例,广州分为广州、番禺、从化、增城、花都等几部分,
其中广州代表了广州城区。所以这里使用监测站更准确)
数据表字段说明
FID VARCHAR2(20) Y 序号
FSITEID VARCHAR2(20) Y 监测站号
FSITENAME VARCHAR2(20) Y 监测站名
FCITYTYPE VARCHAR2(20) Y 行政级别
FCITY VARCHAR2(20) Y 市
FLON NUMBER(5,2) Y 经度
FLAT NUMBER(5,2) Y 纬度
FABOVESEALEVEL VARCHAR2(20) Y 海拔
FADDRNO VARCHAR2(20) Y 地域编码
FDATASOURCE VARCHAR2(20) Y 数据来源(1为气候中心数据;2为环境云数据)
'''
def getsitedata(tablename,datasource):
sitedata = cur.execute("select fsiteid,fsitename,faddrno from %s where fdatasource = '%s'"%(tablename,datasource))
sitedata = sitedata.fetchall()#接收全部的返回结果行
return sitedata
''' 获取数据
参数1:监控站
参数2:开始日期
参数3:结束日期
参数4:环境云key
'''
def getapidata(sitedata,begin_date,end_date,key):
for site in map(None,sitedata):
siteid = site[0]#参考getsitedata函数注释,编号
sitename = site[1]#名字
siteaddrno = site[2]#所属城市
site_index = pd.Index(site)
site_index = site_index.get_loc(siteid)#设置编号。
''' 这里或许直接用函数替代none,没有试过
def add(num):
return num + 1
rs = map(add, lt)
'''
for querydate in pd.date_range(begin_date,end_date):#拆分成每一天
querydate = str(querydate)[:10]#不使用时间