parent
1dab372b20
commit
423815b295
@ -1,124 +1,127 @@
|
|||||||
import re
|
|
||||||
import json
|
import json
|
||||||
import requests
|
import requests
|
||||||
import pymysql
|
import pymysql
|
||||||
import datetime
|
|
||||||
##################################################################################################
|
#######################################################################################################################
|
||||||
#爬取数据
|
#爬取国内疫情数据概况
|
||||||
# 国内疫情数据概况
|
def InsideSummary():
|
||||||
class InsideSummary:
|
|
||||||
def __init__(self):
|
class class_InsideSummary:
|
||||||
self.curConfirm = 0 #现有确诊
|
def __init__(self):
|
||||||
self.curConfirmRelative = 0#较昨日新增确诊
|
self.curConfirm = 0 # 现有确诊
|
||||||
self.asymptomatic = 0 #无症状感染
|
self.curConfirmRelative = 0 # 较昨日新增确诊
|
||||||
self.asymptomaticRelative = 0 #较昨日新增无症状感染
|
self.asymptomatic = 0 # 无症状感染
|
||||||
self.unconfirmed = 0 #现有疑似
|
self.asymptomaticRelative = 0 # 较昨日新增无症状感染
|
||||||
self.unconfirmedRelative = 0#较昨日疑似新增
|
self.unconfirmed = 0 # 现有疑似
|
||||||
self.icu = 0 #现有重症
|
self.unconfirmedRelative = 0 # 较昨日疑似新增
|
||||||
self.icuRelative = 0 #较昨日重症病例新增
|
self.icu = 0 # 现有重症
|
||||||
self.confirmed = 0 #累计确诊
|
self.icuRelative = 0 # 较昨日重症病例新增
|
||||||
self.confirmedRelative = 0 #较昨日累计确诊新增
|
self.confirmed = 0 # 累计确诊
|
||||||
self.overseasInput = 0 #累计境外输入
|
self.confirmedRelative = 0 # 较昨日累计确诊新增
|
||||||
self.overseasInputRelative = 0#较昨日累计境外输入新 增
|
self.overseasInput = 0 # 累计境外输入
|
||||||
self.cured = 0 #累计治愈
|
self.overseasInputRelative = 0 # 较昨日累计境外输入新 增
|
||||||
self.curedRelative = 0 #较昨日累计治愈新增
|
self.cured = 0 # 累计治愈
|
||||||
self.died = 0 #累计死亡
|
self.curedRelative = 0 # 较昨日累计治愈新增
|
||||||
self.diedRelative = 0#较昨日累计死亡新增
|
self.died = 0 # 累计死亡
|
||||||
self.updatedTime = 0 #发布时间
|
self.diedRelative = 0 # 较昨日累计死亡新增
|
||||||
# 数据库接口
|
self.updatedTime = 0 # 发布时间
|
||||||
def get_inside_summary_tuple(self):
|
|
||||||
return ((self.curConfirm, self.curConfirmRelative, self.asymptomatic, self.asymptomaticRelative, \
|
# 返回元组
|
||||||
self.unconfirmed, self.unconfirmedRelative, self.icu, self.icuRelative, self.confirmed, \
|
def get_inside_summary_tuple(self):
|
||||||
self.confirmedRelative, self.overseasInput, self.overseasInputRelative, self.cured, self.curedRelative, \
|
return ((self.curConfirm, self.curConfirmRelative, self.asymptomatic, self.asymptomaticRelative, \
|
||||||
self.died, self.diedRelative, self.updatedTime))
|
self.unconfirmed, self.unconfirmedRelative, self.icu, self.icuRelative, self.confirmed, \
|
||||||
# 输出接口
|
self.confirmedRelative, self.overseasInput, self.overseasInputRelative, self.cured,
|
||||||
def __str__(self):
|
self.curedRelative, \
|
||||||
return '%s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s' % (
|
self.died, self.diedRelative, self.updatedTime))
|
||||||
self.curConfirm, self.curConfirmRelative, self.asymptomatic, self.asymptomaticRelative, self.unconfirmed,
|
|
||||||
self.unconfirmedRelative, self.icu, self.icuRelative, self.confirmed, self.confirmedRelative,
|
# 输出接口
|
||||||
self.overseasInput, self.overseasInputRelative, self.cured, self.curedRelative, self.died, self.diedRelative,
|
def __str__(self):
|
||||||
self.updatedTime)
|
return '%s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s' % (
|
||||||
#######################################################################################################
|
self.curConfirm, self.curConfirmRelative, self.asymptomatic, self.asymptomaticRelative,
|
||||||
#业务逻辑类
|
self.unconfirmed,
|
||||||
|
self.unconfirmedRelative, self.icu, self.icuRelative, self.confirmed, self.confirmedRelative,
|
||||||
# 爬取国内疫情数据
|
self.overseasInput, self.overseasInputRelative, self.cured, self.curedRelative, self.died,
|
||||||
res=requests.get('https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5')
|
self.diedRelative,
|
||||||
#解码
|
self.updatedTime)
|
||||||
res=res.content.decode('utf-8')
|
|
||||||
|
|
||||||
dict=json.loads(res) #str->dict
|
def get_text():# 爬取国内疫情数据文本
|
||||||
|
res = requests.get('https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5')
|
||||||
#规范数据
|
res = res.content.decode('utf-8')
|
||||||
for key in dict:
|
dict = json.loads(res) # str->dict
|
||||||
try:
|
# 规范数据
|
||||||
dict[key] = dict[key].replace('\\', '')
|
for key in dict:
|
||||||
key=key.replace('\\','')
|
try:
|
||||||
except:
|
dict[key] = dict[key].replace('\\', '')
|
||||||
pass
|
key = key.replace('\\', '')
|
||||||
#新生成data字典
|
except:
|
||||||
data=json.loads(dict['data'])
|
pass
|
||||||
|
data = json.loads(dict['data'])
|
||||||
# 国内疫情数据实例化
|
|
||||||
# # #赋值
|
return data
|
||||||
def fetch_inside_summary(data):
|
|
||||||
insideSummary = InsideSummary()
|
|
||||||
insideSummary.curConfirm = int(data['chinaTotal']['nowConfirm'])
|
|
||||||
insideSummary.curConfirmRelative = int(data['chinaAdd']['nowConfirm'])
|
|
||||||
insideSummary.asymptomatic = int(data['chinaTotal']['noInfect'])
|
# 国内疫情数据赋值
|
||||||
insideSummary.asymptomaticRelative = int(data['chinaAdd']['noInfect'])
|
def fetch_inside_summary():
|
||||||
insideSummary.unconfirmed = int(data['chinaTotal']['suspect'])
|
|
||||||
insideSummary.unconfirmedRelative = int(data['chinaAdd']['suspect'])
|
dataf=get_text()
|
||||||
insideSummary.icu = int(data['chinaTotal']['nowSevere'])
|
insideSummary = class_InsideSummary()
|
||||||
insideSummary.icuRelative = int(data['chinaAdd']['nowSevere'])
|
insideSummary.curConfirm = int(dataf['chinaTotal']['nowConfirm'])
|
||||||
insideSummary.confirmed = int(data['chinaTotal']['confirm'])
|
insideSummary.curConfirmRelative = int(dataf['chinaAdd']['nowConfirm'])
|
||||||
insideSummary.updatedTime = data['lastUpdateTime']
|
insideSummary.asymptomatic = int(dataf['chinaTotal']['noInfect'])
|
||||||
insideSummary.confirmedRelative = int(data['chinaAdd']['confirm'])
|
insideSummary.asymptomaticRelative = int(dataf['chinaAdd']['noInfect'])
|
||||||
insideSummary.overseasInput = int(data['chinaTotal']['importedCase'])
|
insideSummary.unconfirmed = int(dataf['chinaTotal']['suspect'])
|
||||||
insideSummary.overseasInputRelative = int(data['chinaAdd']['importedCase'])
|
insideSummary.unconfirmedRelative = int(dataf['chinaAdd']['suspect'])
|
||||||
insideSummary.cured = int(data['chinaTotal']['heal'])
|
insideSummary.icu = int(dataf['chinaTotal']['nowSevere'])
|
||||||
insideSummary.curedRelative = int(data['chinaAdd']['heal'])
|
insideSummary.icuRelative = int(dataf['chinaAdd']['nowSevere'])
|
||||||
insideSummary.died = int(data['chinaTotal']['dead'])
|
insideSummary.confirmed = int(dataf['chinaTotal']['confirm'])
|
||||||
insideSummary.diedRelative = int(data['chinaAdd']['dead'])
|
insideSummary.updatedTime = dataf['lastUpdateTime']
|
||||||
return insideSummary
|
insideSummary.confirmedRelative = int(dataf['chinaAdd']['confirm'])
|
||||||
##########################################################################################################
|
insideSummary.overseasInput = int(dataf['chinaTotal']['importedCase'])
|
||||||
#存储数据于数据库
|
insideSummary.overseasInputRelative = int(dataf['chinaAdd']['importedCase'])
|
||||||
|
insideSummary.cured = int(dataf['chinaTotal']['heal'])
|
||||||
#保存国内疫情概况数据
|
insideSummary.curedRelative = int(dataf['chinaAdd']['heal'])
|
||||||
|
insideSummary.died = int(dataf['chinaTotal']['dead'])
|
||||||
def insert(res):
|
insideSummary.diedRelative = int(dataf['chinaAdd']['dead'])
|
||||||
|
|
||||||
# 创建连接,并且返回连接对象
|
return insideSummary
|
||||||
conn =pymysql.connect(host='localhost',user='root',db='covid19_datas_guangxi',passwd='kfq991122',charset='utf8')
|
|
||||||
# 创建游标对象
|
|
||||||
cursor = conn.cursor()
|
|
||||||
|
|
||||||
date = data['lastUpdateTime'].split(' ',1)[0]
|
# 保存国内疫情概况数据
|
||||||
print(date)
|
def insert(res):
|
||||||
sql = 'delete from home_realtime_datas where updatedTime like "%s"'%(date+'%')
|
|
||||||
print('The update was successful')
|
# 创建连接,并且返回连接对象
|
||||||
try:
|
conn = pymysql.connect(host='localhost', user='root', db='covid19', passwd='kfq991122')
|
||||||
cursor.execute(sql)
|
# 创建游标对象
|
||||||
conn.commit()
|
cursor = conn.cursor()
|
||||||
except Exception as e:
|
date = data['lastUpdateTime']
|
||||||
print(e)
|
sql = 'delete from home_realtime_datas where updatedTime like "%s"' % (date + '%')
|
||||||
|
print('delete old_insidesummary_datas successful')
|
||||||
sql='insert into home_realtime_datas(curConfirm,curConfirmRelative,asymptomatic,asymptomaticRelative,unconfirmed,unconfirmedRelative,icu,icuRelative,confirmed,confirmedRelative,overseasInput,overseasInputRelative,cured,curedRelative,died,diedRelative,updatedTime) values(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)'
|
try:
|
||||||
try:
|
cursor.execute(sql)
|
||||||
cursor.execute(sql, res)
|
conn.commit()
|
||||||
conn.commit()
|
except Exception as e:
|
||||||
except Exception as e:
|
print(e)
|
||||||
print(e)
|
sql = 'insert into home_realtime_datas(curConfirm,curConfirmRelative,asymptomatic,asymptomaticRelative,unconfirmed,unconfirmedRelative,icu,icuRelative,confirmed,confirmedRelative,overseasInput,overseasInputRelative,cured,curedRelative,died,diedRelative,updatedTime) values(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)'
|
||||||
print('+++ save_province_datas is over.')
|
try:
|
||||||
cursor.close()
|
cursor.execute(sql, res)
|
||||||
conn.close()
|
conn.commit()
|
||||||
|
print("+++ save_insidesummary_datas successful")
|
||||||
|
print('+++ save_outsideSummary_datas, data len: %d' % len(res))
|
||||||
insert(fetch_inside_summary(data).get_inside_summary_tuple())
|
except Exception as e:
|
||||||
|
print(e)
|
||||||
|
print('+++ save_insidesummary_datas fail.')
|
||||||
conn = pymysql.connect('localhost','root','kfq991122','covid19_datas_guangxi')
|
print('+++ save_insidesummary_datas is over.')
|
||||||
cursor = conn.cursor()
|
cursor.close()
|
||||||
sql = 'select * from home_realtime_datas'
|
conn.close()
|
||||||
cursor.execute(sql)
|
|
||||||
results = cursor.fetchall()
|
|
||||||
print(results)
|
########InsideSummary__main__####################
|
||||||
|
data = get_text()
|
||||||
|
insert(fetch_inside_summary().get_inside_summary_tuple())
|
||||||
|
|
||||||
|
InsideSummary()
|
Loading…
Reference in new issue