commit
8ad854d4f6
@ -0,0 +1,118 @@
|
||||
import requests
|
||||
import re
|
||||
import datetime
|
||||
from bs4 import BeautifulSoup
|
||||
import lxml
|
||||
import json
|
||||
import pymysql
|
||||
|
||||
class summary_cn:
|
||||
def __init__(self):
|
||||
self.confirmed = 0
|
||||
self.died = 0
|
||||
self.cured = 0
|
||||
self.asymptomatic = 0
|
||||
self.asymptomaticRelative = 0
|
||||
self.unconfirmed = 0
|
||||
self.relativeTime = 0
|
||||
self.confirmedRelative = 0
|
||||
self.unconfirmedRelative = 0
|
||||
self.curedRelative = 0
|
||||
self.diedRelative = 0
|
||||
self.icu = 0
|
||||
self.icuRelative = 0
|
||||
self.overseasInput = 0
|
||||
self.unOverseasInputCumulative = 0
|
||||
self.overseasInputRelative = 0
|
||||
self.unOverseasInputNewAdd = 0
|
||||
self.curConfirm = 0
|
||||
self.curConfirmRelative = 0
|
||||
self.icuDisable = 0
|
||||
self.mapLastUpdatedTime = 0
|
||||
def get_db_tuple(self):
|
||||
return (self.confirmed,self.died,self.cured,self.asymptomatic,self.asymptomaticRelative,
|
||||
self.unconfirmed,self.relativeTime,self.confirmedRelative,self.unconfirmedRelative,
|
||||
self.curedRelative,self.diedRelative,self.icu,self.icuRelative,self.overseasInput,
|
||||
self.unOverseasInputCumulative,self.overseasInputRelative,self.unOverseasInputNewAdd,
|
||||
self.curConfirm,self.curConfirmRelative,self.icuDisable,self.mapLastUpdatedTime,
|
||||
datetime.datetime.now().strftime('%Y-%m-%d'))
|
||||
def insert_sql(con):
|
||||
sql='''
|
||||
insert into cn_sunmary(confirmed,died,cured,asymptomatic,asymptomaticRelative,
|
||||
unconfirmed,relativeTime,confirmedRelative,unconfirmedRelative,
|
||||
curedRelative,diedRelative,icu,icuRelative,overseasInput,
|
||||
unOverseasInputCumulative,overseasInputRelative,unOverseasInputNewAdd,
|
||||
curConfirm,curConfirmRelative,icuDisable,mapLastUpdatedTime,InsertTime) values(%d,%d,%d,
|
||||
%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%s)
|
||||
'''
|
||||
try:
|
||||
con.cursor().execute(sql,self.get_db_tuple())
|
||||
con.commit()
|
||||
except Exception as e:
|
||||
print(e)
|
||||
print('Insert failed.')
|
||||
else:
|
||||
print('Inserted successfully')
|
||||
def __str__(self):
|
||||
string = '截止' + self.mapLastUpdatedTime + '\n'
|
||||
string+= "国内现有\n\t确诊:" + str(self.curConfirm) + '\t较昨日' + str(self.curConfirmRelative)
|
||||
string+="\n\t无症状:" + str(self.asymptomatic) + '\t较昨日' + str(self.asymptomaticRelative)
|
||||
string+='\n\t重症:' + str(self.icu) + '\t较昨日' + str(self.icuRelative)
|
||||
string+='\n\t疑似:' + str(self.unconfirmed) + '\t\t较昨日' + str(self.unconfirmedRelative)
|
||||
string+='\n累计:\n\t确诊' + str(self.confirmed) + '\n\t治愈' + str(self.cured)
|
||||
string+='\n\t死亡' + str(self.died)
|
||||
return string
|
||||
|
||||
def getCnSummary():
|
||||
res = requests.get("https://voice.baidu.com/act/newpneumonia/newpneumonia/")
|
||||
txt = res.content.decode("utf-8")
|
||||
soup = BeautifulSoup(txt,'html.parser')
|
||||
tag = soup.find('script',attrs={'id':'captain-config'})
|
||||
tagjs = json.loads(tag.string)
|
||||
ans = tagjs['component'][0]['summaryDataIn']
|
||||
sum = summary_cn()
|
||||
|
||||
sum.confirmed = int(ans['confirmed'])
|
||||
sum.died = int(ans['died'])
|
||||
sum.cured = int(ans['cured'])
|
||||
sum.asymptomatic = int(ans['asymptomatic'])
|
||||
sum.asymptomaticRelative = int(ans['asymptomaticRelative'])
|
||||
sum.unconfirmed = int(ans['unconfirmed'])
|
||||
sum.relativeTime = int(ans['relativeTime'])
|
||||
sum.confirmedRelative = int(ans['confirmedRelative'])
|
||||
sum.unconfirmedRelative = int(ans['unconfirmedRelative'])
|
||||
sum.curedRelative = int(ans['curedRelative'])
|
||||
sum.diedRelative = int(ans['diedRelative'])
|
||||
sum.icu = int(ans['icu'])
|
||||
sum.icuRelative = int(ans['icuRelative'])
|
||||
sum.overseasInput = int(ans['overseasInput'])
|
||||
sum.unOverseasInputCumulative = int(ans['unOverseasInputCumulative'])
|
||||
sum.overseasInputRelative = int(ans['overseasInputRelative'])
|
||||
sum.unOverseasInputNewAdd = int(ans['unOverseasInputNewAdd'])
|
||||
sum.curConfirm = int(ans['curConfirm'])
|
||||
sum.curConfirmRelative = int(ans['curConfirmRelative'])
|
||||
sum.icuDisable = int(ans['icuDisable'])
|
||||
sum.mapLastUpdatedTime = tagjs['component'][0]['mapLastUpdatedTime']
|
||||
#print(sum)
|
||||
return sum
|
||||
|
||||
def getCnNews():
|
||||
b = webdriver.Chrome()
|
||||
b.get("https://voice.baidu.com/act/newpneumonia/newpneumonia")
|
||||
txt = b.page_source
|
||||
b.quit()
|
||||
soup = BeautifulSoup(txt,'html.parser')
|
||||
tag1 = soup.select('div[class="Virus_1-1-284_2CVyXP"]')
|
||||
tag2 = soup.select('div[class="Virus_1-1-284_TB6x3k"] > a[href]')
|
||||
ans = []
|
||||
for i,j in zip(tag1,tag2):
|
||||
tmp = str(i.string)
|
||||
tmp+=' ' + j.get('href')
|
||||
ans.append(tmp)
|
||||
print(tmp)
|
||||
return ans
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
getCnSummary()
|
||||
|
Loading…
Reference in new issue