parent
9c4b610d54
commit
3bcb16f6b6
@ -0,0 +1,120 @@
|
||||
import requests
|
||||
import re
|
||||
from bs4 import BeautifulSoup
|
||||
import json
|
||||
import time
|
||||
|
||||
class City:
|
||||
def __init__(self,tempjs={},city='无数据',confiemed='无数据',died='无数据',crued='无数据',confirmedRelative='无数据',cityCode='无数据'):
|
||||
self.city=city
|
||||
self.confirmed=confiemed
|
||||
self.died=died
|
||||
self.crued=crued
|
||||
self.confirmedRelative=confirmedRelative
|
||||
self.cityCode=cityCode
|
||||
js={'city': '无数据', 'confirmed': '无数据', 'died': '无数据', 'crued': '无数据', 'confirmedRelative': '无数据', 'curConfirm': '无数据', 'cityCode': '无数据'}
|
||||
for k,v in tempjs.items():
|
||||
if tempjs[k]!='':
|
||||
js[k]=v
|
||||
self.city=js["city"]
|
||||
self.confirmed=js["confirmed"]
|
||||
self.died=js["died"]
|
||||
self.crued=js["crued"]
|
||||
self.confirmedRelative=js["confirmedRelative"]
|
||||
self.cityCode=js["cityCode"]
|
||||
def __str__(self):
|
||||
if self.city=='境外输入':
|
||||
return "其它情况:{:<10}城市代码:{:<4}新增患者:{:<4}累积确诊:{:<4}累积死亡:{:<4}累积治愈:{:<4}".format(self.city,self.cityCode,self.confirmedRelative,
|
||||
self.confirmed,self.died,self.crued)
|
||||
return "城市名:{:<10}城市代码:{:<4}新增患者:{:<4}累积确诊:{:<4}累积死亡:{:<4}累积治愈:{:<4}".format(self.city,self.cityCode,self.confirmedRelative,
|
||||
self.confirmed,self.died,self.crued)
|
||||
|
||||
class Provinces:
|
||||
def __init__(self):
|
||||
self.number=0
|
||||
self.province=[]
|
||||
def addProvince(self,province):
|
||||
self.province.append(province)
|
||||
def printEveryProvince(self):
|
||||
for p in self.province:
|
||||
print(p)
|
||||
def __str__(self):
|
||||
return str(self.province)
|
||||
|
||||
|
||||
class Province:
|
||||
def __init__(self,tempjs={},confirmed='无数据',died='无数据',crued='无数据',relativeTime='无数据',confirmedRelative='无数据',
|
||||
diedRelative='无数据',curedRelative='无数据',asymptomaticRelative='无数据',asymptomatic='无数据',
|
||||
curConfirm='无数据',curConfirmRelative='无数据',icuDisable='无数据',area='无数据',subList=[]):
|
||||
self.died=died
|
||||
self.confirmed=confirmed
|
||||
self.crued=crued
|
||||
self.relativeTime=relativeTime
|
||||
self.confirmedRelative=confirmedRelative
|
||||
self.diedRelative=diedRelative
|
||||
self.curedRelative=curedRelative
|
||||
self.asymptomaticRelative=asymptomaticRelative
|
||||
self.asymptomatic=asymptomatic
|
||||
self.curConfirm=curConfirm
|
||||
self.curConfirmRelative=curConfirmRelative
|
||||
self.icuDisable=icuDisable
|
||||
self.area=area
|
||||
self.subList=subList
|
||||
js={'confirmed': '无数据', 'died': '无数据', 'crued': '无数据', 'relativeTime': '无数据', 'confirmedRelative': '无数据',
|
||||
'diedRelative': '无数据', 'curedRelative': '无数据', 'asymptomaticRelative': '无数据', 'asymptomatic': '无数据', 'curConfirm': '无数据',
|
||||
'curConfirmRelative': '无数据', 'icuDisable': '无数据', 'area': '无数据', 'subList':[]}
|
||||
for k,v in tempjs.items():
|
||||
if tempjs[k]!='':
|
||||
js[k]=v
|
||||
#print(js)
|
||||
self.died=js['died']
|
||||
self.confirmed=js['confirmed']
|
||||
self.crued=js['crued']
|
||||
self.relativeTime=js['relativeTime']
|
||||
self.confirmedRelative=js['confirmedRelative']
|
||||
self.diedRelative=js['diedRelative']
|
||||
self.curedRelative=js['curedRelative']
|
||||
self.asymptomaticRelative=js['asymptomaticRelative']
|
||||
self.asymptomatic=js['asymptomatic']
|
||||
self.curConfirm=js['curConfirm']
|
||||
self.curConfirmRelative=js['curConfirmRelative']
|
||||
self.icuDisable=js['icuDisable']
|
||||
self.area=js['area']
|
||||
self.subList=js['subList']
|
||||
cities=js["subList"]
|
||||
for c in cities:
|
||||
city=City(c)
|
||||
subList.append(city)
|
||||
def printEveryCity(self):
|
||||
for c in self.subList:
|
||||
city=City(c)
|
||||
print(city)
|
||||
def __str__(self):
|
||||
localobj=time.localtime(int(self.relativeTime))
|
||||
newtime=time.strftime("%Y-%m-%d %H:%M:%S",localobj)
|
||||
return "省份:{:<4}现有患者:{:<4}现有新增患者:{:<4}累积无症状感染者:{:<4}新增无症状感染者:{:<4}累积确诊:{:<6}新增确诊:{:<4}累积治愈:{:<6}新增治愈:{:<4}累积死亡:{:<6}新增死亡:{:<4}累积重症:{:<4}更新时间:{:<10}".format(self.area,self.curConfirm,self.curConfirmRelative,
|
||||
self.asymptomatic,self.asymptomaticRelative,self.confirmed,self.confirmedRelative,self.crued,self.curedRelative,self.died,self.diedRelative,
|
||||
self.icuDisable,newtime)
|
||||
|
||||
|
||||
def start():
|
||||
res=requests.get('https://voice.baidu.com/act/newpneumonia/newpneumonia/')
|
||||
res=res.text
|
||||
#script type="application/json"
|
||||
soup=BeautifulSoup(res,'html.parser')
|
||||
tag=soup.find('script',attrs={'id':'captain-config'})
|
||||
tagstr=str(tag)
|
||||
findinland=re.findall('caseList".*"caseOutsideList',tagstr)[0]
|
||||
province=re.findall('\{"confirmed.*?subList":\[.*?\]\}',findinland)
|
||||
provinces=Provinces()
|
||||
for item in province:
|
||||
js=json.loads(item)
|
||||
p=Province(js)
|
||||
provinces.addProvince(p)
|
||||
print(p)
|
||||
p.printEveryCity()
|
||||
print("++++++++++++++++++++++++++++++"*4)
|
||||
|
||||
#provinces.printEveryProvince()
|
||||
|
||||
|
Loading…
Reference in new issue