栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

(新)腾讯全国疫情动态 + pyecharts可视化

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

(新)腾讯全国疫情动态 + pyecharts可视化

因为上一个全国疫情动态的URL出错了,所以我用了另一个接口,这篇与上一篇内容是一样的,只是URL不一样,所以话不多说,直接亮代码

import time
import requests
import json
from fake_useragent import UserAgent
import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Bar, Line, Pie, Grid, Map


class EpidemicSpider(object):
    def __init__(self):
        # self.sjc = int(time.time()*1000)
        # self.url = f'https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5&callback=_&_={self.sjc}'
        self.url = 'https://api.inews.qq.com/newsqa/v1/query/inner/publish/modules/list?modules=statisGradeCityDetail,diseaseh5Shelf'
        self.ua = UserAgent()
        self.headers = {
            'user_agent': self.ua.random,
        }

    def parse_response(self):
        response = requests.post(self.url, headers=self.headers).text
        data_th = json.loads(response)['data']['diseaseh5Shelf']['areaTree'][0]['children']  # 拿到json数据中 children 的值
        # 设置一个数据集
        data_set = []
        for i in data_th:
            # 创建空字典
            data_dict = {}
            # 地区名称
            data_dict['province'] = i['name']
            # 疫情数据
            data_dict['nowConfirm'] = i['total']['nowConfirm']  # 现有确诊
            data_dict['confirm'] = i['total']['confirm']  # 累计确诊
            data_dict['addconfirm'] = i['today']['confirm']  # 新增确诊
            data_dict['dead'] = i['total']['dead']  # 死亡人数
            data_dict['heal'] = i['total']['heal']  # 治愈人数
            data_dict['wzz'] = i['total']['wzz']  # 本土无症状确诊
            data_dict['provinceLocalConfirm'] = i['total']['provinceLocalConfirm']  # 地区本地确诊
            data_set.append(data_dict)
        fd = pd.DataFrame(data_set)  # 制成表格
        # fd.to_excel('全国地区疫情数据.xls')  # 保存Excel
        fd2 = fd.sort_values(by=['nowConfirm'], ascending=False)  # 根据 'nowConfirm' 以多到少向下排序
        self.drawing(fd)

     def drawing(self, fd):
        china_map = (
            Map()
            # china--意为中国地图
            .add('现有确诊', [list(i) for i in zip(fd['province'], fd['nowConfirm'])], 'china', is_map_symbol_show=False)
            .add('治愈人数', [list(i) for i in zip(fd['province'], fd['heal'])], 'china', is_map_symbol_show=False)
            .add('累计确诊', [list(i) for i in zip(fd['province'], fd['confirm'])], 'china', is_map_symbol_show=False)
            .add('新增确诊', [list(i) for i in zip(fd['province'], fd['addconfirm'])], 'china', is_map_symbol_show=False)
            .set_global_opts(
                title_opts=opts.TitleOpts(title='各地区疫情情况'),
                visualmap_opts=opts.VisualMapOpts(max_=500, is_piecewise=True),
                legend_opts=opts.LegendOpts(pos_left='90%', pos_top='60%')
            )
        )
        china_map.render('map.html')


if __name__ == '__main__':
    e = EpidemicSpider()
    e.parse_response()

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/834705.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号