只接受发布货源信息,不可发布违法信息,一旦发现永久封号,欢迎向我们举报!
免费发布信息
货源通网 > 餐饮行业新闻资讯 > 疫情防控资讯 >  Python获取江苏疫情实时数据


Python获取江苏疫情实时数据

发布时间:2022-03-15 08:32:16  来源:网友自行发布(如侵权请联系本站立刻删除)  浏览:   【】【】【

最近江苏南京、湖南张家界陆续*疫情,目前已波及8省22市,全国共有2个高风险地区,52个中风险地区。



身在南京,作为兢兢业业的打工人,默默地成为了“苏打绿”。为了关注疫情状况,今天我们用python来爬一爬疫情的实时数据。


01


获取目标网站

为了使用python来获取疫情数据,我们需要找一个疫情实时追踪数据发布网站,国内比较有名的是腾讯新闻、网易新闻等,这些网站疫情内容都大同小异,主要包括国内疫情、海外疫情,每日新增确诊趋势,疫苗接种情况等,这里我们选用腾讯新闻疫情发布页来进行数据爬取分析。


网站分析:

  • 使用chrome浏览器 打开疫情发布页网址?,如上图所示

    https://news.qq.com/zt2020/page/feiyan.htm#/

  • 按F12 进入开发者模式,按 ctrl+R 刷新页面

  • ?在Network下找到 getOnsInfo?name=disease_h5列,获得爬取目标网址:https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5



02



爬取目标网站



我们写爬虫爬取网站数据,需要安装request库,安装命令如下:

pip3?install?requests

只需要三行代码就可以获取该网页内容,代码如下:

url = 'https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5'req?=?requests.get(url=url)content = json.loads(req.text)

打印爬去结果如下:


03


解析爬取内容


上述网站内容我们虽然爬取成功,接下来我们需要对爬取的结果进行解析,从中找出我们感兴趣的部分。

1)解析全国今日总况:


相应的解析代码如下:

def get_all_china(content):    tmp_data = content["data"]    area_data = json.loads(tmp_data)["areaTree"]????country?=?area_data[0]    country_list = []    name = country["name"]    today_confirm = country["today"]["confirm"]    now_confirm = country["total"]["nowConfirm"]    total_confirm = country["total"]["confirm"]????total_heal?=?country["total"]["heal"]    country_list.append([name, today_confirm, now_confirm, total_confirm, total_heal])    return country_list

打印结果如下:

输出太丑了,这里使用PrettyTable库对输出进行美化,代码如下:

def format_list_prettytable(title,province_list):    table = PrettyTable(title)    for province in province_list:        table.add_row(province)    table.border = True    return table

结果如下:


2)依次类推,可解析全国各省市疫情情况如下:

代码如下:

def get_all_province(content):    tmp_data = content["data"]    area_data = json.loads(tmp_data)["areaTree"]    data = area_data[0]['children']
province_list = [] for province in data: name = province["name"] today_confirm = province["today"]["confirm"] now_confirm = province["total"]["nowConfirm"] total_confirm = province["total"]["confirm"] total_heal = province["total"]["heal"] province_list.append([name, today_confirm, now_confirm, total_confirm, total_heal]) return province_list

结果如下:

3)最后,我们获取江苏省各地级市的疫情数据

代码如下:

def parse_jiangsu_province(content,key_province):    tmp_data = content["data"]    area_data = json.loads(tmp_data)["areaTree"]    data = area_data[0]['children']
city_list = [] for province in data: name = province["name"] if name == key_province: children_list = province["children"] for children in children_list: city = children["name"] today_new = children["today"]["confirm"] now_confirm = children["total"]["nowConfirm"] total_confirm = children["total"]["confirm"] total_heal = children["total"]["heal"] city_list.append([city, today_new, now_confirm, total_confirm, total_heal]) return city_list

结果如下:

04

可视化

使用matplotlib对上述爬去的江苏各地级市疫情分布可视化,得到结果如下:

今日新增可视化结果如下:


现有确诊可视化结果如下:

从上述图表可以看出,今日疫情已扩散至扬州,扬州今日新增感染人数最多,需引起重视。


注:完整代码获取,后台回复“疫情”。



声明:本信息来自互联网转载,本站仅仅分享信息不保证真实性、实时性有效性、准确性,信息仅供参考。建议大家不信遥不传遥。若有来源标注错误或侵犯了您的合法权益又或者信息不真实等情况请发邮件到2435147949@qq.com 告知,本站会第一时间删除!谢谢!
责任编辑:
热门阅读排行
© 货源通网 免费发布信息