3.将数据存储到数据库
我们的目标是收集全国所有气象站每天24小时整点数据,数据量很大,所以需要将数据存储到数据库中。我们选择sqlite。
对应的python库是sqlite3。
首先建立数据库
数据库设计如下
地区编码,positionId,int
地区名,name,text
小时,date_time,date
温度,temperature, int
降雨量,rain,int
相对湿度,humidity,int
风向,windDirection,int
风速,windPower,int
全名,fullName,text
插入时间,createTime,text
建库建表代码:
import sqlite3
conn = sqlite3.connect("demo.db") #直接在同级目录下创建名为demo的数据库
c = conn.cursor()
c.execute('''create table weather
(positionId int not null,
name text not null,
date_time date not null,
temperature int,
rain int,
humidity int,
windDirection int,
windPower int,
fullName text not null,
createTime text not null DEFAULT (datetime('now','localtime')));''')
各个字段都在上一节获取到了。我们还需要获取fullname字段,地区全名,即如图所示的湖北>武汉>城区。
需要再写个函数获取:
def getPositionName(soup, num): #soup:beautiful的soup对象,num城市编码
position_name = soup.find(class_="crumbs")
name = []
for i