国内外新冠肺炎实时数据爬虫源代码_全国疫情实时数据分析完全代码-程序员宅基地

技术标签: 爬虫  python  

import json
from prettytable import PrettyTable
import requests
import pandas as pd


def getData_zt2020():
    url = 'https://news.qq.com/zt2020/page/feiyan.htm'
    headers = {
        'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1'
    }
    r = requests.get(url, headers)
    if r.status_code == 200:
        return r.text
    else:
        print("数据拉取失败")
        return ""


def getData_g2():
    url = 'https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5'
    headers = {
        'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1'
    }
    req = requests.get(url, headers)
    if req.status_code == 200:
        data = json.loads(json.loads(req.text)['data'])
        return data
    else:
        print("数据拉取失败")
        return ""


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


def get_china(data):
    """
    lastUpdateTime :最后更新时间
    chinaTotal :累计值
    chinaAdd :每日新增 和 chinaTotal字段一致
    confirm 确诊
    heal 治愈
    dead 死亡
    nowConfirm 现有确诊
    suspect 疑似
    nowSevere 重症
    chinaDayList不提供了,搞得我没法做趋势图
    :param data:
    :return:
    """
    # 新增
    china_add = data['chinaAdd']
    add_confirm = china_add['confirm']  # 新增确诊
    add_dead = china_add["dead"]  # 新增死亡
    add_now_confirm = china_add["nowConfirm"]  # 新增现有确诊
    add_suspect = china_add["suspect"]  # 疑似新增
    add_now_severe = china_add["nowSevere"]  # 新增重症
    add_heal = china_add["heal"]  # 治愈新增
    add_noInfect = china_add["noInfectH5"]  # 无症状新增
    add_importedCase = china_add["importedCase"]  # 境外输入新增
    add_localConfirm = china_add["localConfirmH5"]  # 本土新增确诊

    #累计
    china_total = data['chinaTotal']  # 累计
    total_confirm = china_total['confirm']  # 累计确诊
    total_dead = china_total['dead']  # 累计死亡
    total_heal = china_total['heal']  # 累计治愈
    total_suspect = china_total['suspect']  # 现有疑似
    total_nowSevere = china_total['nowSevere']  # 现有重症
    total_noInfect = china_total['noInfect']  # 现有无症状
    total_importedCase = china_total['importedCase']  # 现有境外输入
    total_localConfirm = china_total['localConfirmH5']  # 本土现有
    title = ["add_localConfirm", "add_noInfect", "add_suspect", "add_confirm", "total_localConfirm", "total_noInfect", "total_suspect"]
    china_list = []
    china_list.append([add_localConfirm, add_noInfect, add_suspect, add_confirm, total_localConfirm, total_noInfect, total_suspect])
    china_table = format_list_prettytable(title, china_list)
    return china_table


def get_all_province(data):
    area_data = data["areaTree"][0]  # 中国数据
    chil_data = area_data['children']
    province_list = []
    for province in chil_data:
        name = province["name"]
        today_confirm = province["today"]["confirm"]  # 今日新增确诊病例数
        today_wzz = province["today"]["wzz_add"]  # 今日新增无症状
        now_confirm = province["total"]["nowConfirm"]  # 现有确诊病例数
        total_confirm = province["total"]["confirm"]   # 累计确诊病例数
        total_wzz = province["total"]["wzz"]   # 累计确诊病例数
        total_confirm = province["total"]["confirm"]   # 累计确诊病例数
        total_heal = province["total"]["heal"]  # 累计治愈
        province_list.append([name, today_confirm, today_wzz, now_confirm, total_confirm, total_heal])
    title = ["name", "today_confirm", "today_wzz", "now_confirm", "total_confirm", "total_heal"]
    province_table = format_list_prettytable(title, province_list)
    return province_table


def parse_jiangsu_province(data, key_province):
    area_data = json.loads(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"]
            today_heal = children['total']['heal']
            city_list.append([city, today_new, now_confirm, total_confirm, today_heal])
    return city_list


def data_write():
    pass


def data_plot():
    pass


if __name__ == '__main__':
    data = getData_g2()
    china_data = get_china(data)
    print(china_data)
    province_data = get_all_province(data)
    print(province_data)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Trisyp/article/details/123428379

智能推荐

Uboot和系统移植(17)------- Linux内核的启动过程_嵌入式linux kernel如何获取 uboot的版本-程序员宅基地

文章浏览阅读828次,点赞2次,收藏7次。目录一,makefile和链接脚本的简单分析二,head.S文件分析1.前段分析2.内核启动的汇编阶段分析3.内核启动的C语言阶段分析3.1内核启动文件main.c -------> Do necessary setups3.2补充进程知识3.3rest_init三,cmdline常用参数一,makefile和链接脚本的简单分析1、Makefile分析(1)kernel的Makefile写法和规则等和uboot的Makefile是一样的,甚至Makefile中的很多内容都是一样的。(2)ke_嵌入式linux kernel如何获取 uboot的版本

蓝盾实训营day9——Windows主机安全加固和Android木马生成-程序员宅基地

文章浏览阅读458次。Windows主机安全加固禁用guest账户设置账户锁定策略设置Administrator不允许终端登陆使用注册表更改远程桌面监听的端口用netstat -an 查看端口打开情况,关闭不必要的端口关闭自动播放,防止U盘插入后病毒自动运行 7. ...

语音分离---TasNet-程序员宅基地

文章浏览阅读4.9k次,点赞2次,收藏27次。语音分离:1)分离噪声: 降噪2)分离混响:降混响3)分离人声:说话人分离4)分离回声:回声消除TasNet 系列在语音分离方法有不错的表现,有用到降噪&说话人分离&回声消除等方面,采用的是 encoder + seperator(generate mask) + decoder 的结构;主要提出的点有:1) time-domain (对比时频域算法,用encoder 和 decoder 来替代stft 和 istft 类似的变换。可以不需要考虑是否保留phase和频域分辨率_tasnet

layui 表单验证不生效的问题-程序员宅基地

文章浏览阅读1.9k次。form 需在div 内部<div class="layui-form"><form class="layui-form layui-form-pane" action="" lay-filter=""><div class="layui-form-item"> <div class="layui-inline"..._layui 表单验证失效

【Github万星】50个有趣而又鲜为人知的 Python 特性-程序员宅基地

文章浏览阅读232次。新智元推荐来源:GitHubPython, 是一个设计优美的解释型高级语言, 它提供了很多能让程序员感到舒适的功能特性。但有的时候, Python 的一些输出结果对于初学者来说似乎..._sticky output

Java 获取linux根目录下的文件夹_Linux-包教包会系列-程序员宅基地

文章浏览阅读1.9k次。前言以前我的不喜欢用 Linux 系统,什么目录啊,文件啊,权限啊,都得命令操作,入门难度较大。但是一旦熟练起来,真不想再去用 windows 了。再加上 shell 脚本,那才叫如虎添翼啊,真的是见识到了什么才是性能,什么才是自动化。Linux 相较于 windows 而言,占用内存更小,因为 windows 的图形化界面比较占内存。Linux 的生态也比较丰富,各种各样的服务端软件都会有 ..._java 遍历linux根目录下的目录

随便推点

9、XCTF get_post_请再以post方式随便提交一个名为post且值为1的变量-程序员宅基地

文章浏览阅读340次。X老师告诉小宁同学HTTP通常使用两种请求方法,你知道是哪两种吗?打开网站,看到下面请用GET方式提交一个名为a,值为1的变量。构造payload,http://111.200.241.244:50152/?a=1得到,请再以POST方式随便提交一个名为b,值为2的变量在构造一个http://111.200.241.244:50152/?a=1Poat data b=2得到flag。基础知识:HTTP协议中共定义了八种方法或者叫“动作”来表明对Request-URI指定的资源的_请再以post方式随便提交一个名为post且值为1的变量

Trojan-Spy.Win32.Delf.uv分析-程序员宅基地

文章浏览阅读209次。安天CERT:高喜宝一、 病毒标签:病毒名称: Trojan-Spy.Win32.Delf.uv病毒类型: ***文件 MD5: AEB1EC3571803651FB644C73C4521BD5公开范围: 完全公开危害等级: 4文件长度: 12,683 字节感染系统: Windows98以上版本开发工具: Borland Delph..._trojan-spy.win32.travnet.404558

提升应用性能的关键步骤——UniApp性能优化策略与技巧详解-程序员宅基地

文章浏览阅读2.5k次,点赞19次,收藏29次。作者主页」「个人网站」ChatGPT体验地址。_uniapp性能优化

origin绘图同时添加柱状图和折线图_origin柱状图加折线图-程序员宅基地

文章浏览阅读8.5w次,点赞27次,收藏117次。在绘制数据图时,为了清晰反应不同数据之间的关系,往往需要在同一个图中同时添加柱状图和点线图。这时候需要左右两个纵坐标。下面介绍这种图的绘制方法1、首先绘制一个柱状图,具体绘制方法可以参考上一篇博客:origin绘图软件安装包及入门使用2在图的右侧插入刻度线,插入顺序如下图所示,点击图-->新图层(轴)-->右Y轴3、添加完后双击右侧刻度线修改刻度的起始值和要插入的点线图数值范围对应4、插入折线图,选择图->添加点线图,从book中选择要绘制点线图的数据导入到右侧_origin柱状图加折线图

使用HTML制作一个简单的个人主页_简单个人主页-程序员宅基地

文章浏览阅读10w+次,点赞648次,收藏4.2k次。此网页我对html有了一个简单,初步的认识后制作的一个网页,主要目的是练习html的一些简单操作,由于时间关系,有很多做的不好,细节处理不到位的地方。废话不多说,先来看效果1、首页这一个网页就是进行了网页背景、背景音乐、段落的处理、水平线以及超链接的简单练习。2、我的相册这一页主要是对大量图片进行一个排版的练习3、我的计划这一页主要是对文本有序无序以及表格内部的背景颜色等等的练习4、我的家乡这一部分是对段落、还有文本与图片结合的练习5、我的故事这个是对表格进阶版的练习,文字_简单个人主页

程序员 如何浪漫表白-程序员宅基地

文章浏览阅读220次。这是 一个傻子 给我的浪漫表白。开篇第一章,希望以后写的东西越来越厉害!转载于:https://www.cnblogs.com/lyy9902/p/8310575.html_电脑 程序员 浪漫表白