python 爬取疫情数据的源码


Posted in Python onFebruary 09, 2020

疫情数据

python 爬取疫情数据的源码

程序源码

// An highlighted block
import requests
import json
class epidemic_data():
  def __init__(self, province):
    self.url = url
    self.header = header
    self.text = {}
    self.province = province
    # self.r=None
  def down_page(self):
    r = requests.get(url=url, headers=header)
    self.text = r.text
    # self.r = r
  def parse_page(self):
    # print(type(self.r.json()['data']))
    # 因为解析数据为 data 前有一个"",所以数据类型为string
    data_str = json.loads(self.text)['data'] #sring
    # print(type(data_dict))
    # print(type(data_dict['data']))
    # 将str 转化为对象
    data_json = json.loads(data_str)
    data_tree_dict = data_json['areaTree'][0]['children'] # 取中国的省列表
    prt_str = []
    prt_str.append("数据更新时间:"+data_json['lastUpdateTime'])
    prt_str.append("全国" + ":" + "累计确诊病例:" + str(data_json['chinaTotal']['confirm']) + \
            "累计疑似病例:" + str(data_json['chinaTotal']['suspect']) + \
            "累计死亡病例:" + str(data_json['chinaTotal']['dead']) + \
            "累计出院病例:" + str(data_json['chinaTotal']['heal']) + \
            "今日新增确诊病例:" + str(data_json['chinaAdd']['confirm']) + \
            "今日新增疑似病例:" + str(data_json['chinaAdd']['suspect']) + \
            "今日新增死亡病例:" + str(data_json['chinaAdd']['dead']) + \
            "今日新增出院病例:" + str(data_json['chinaAdd']['heal']))
    for province_list in data_tree_dict:
      for provice_name in self.province:
        if provice_name in province_list['name']:
          city_list = province_list['children']
          prt_str.append(province_list['name'] + ":" + "累计确诊病例:" + str(province_list['total']['confirm']) + \
                    "累计死亡病例:" + str(province_list['total']['dead']) + \
                    "累计出院病例:" + str(province_list['total']['heal']) + \
                    "今日新增确诊病例:" + str(province_list['today']['confirm']) + \
                    "今日新增死亡病例:" + str(province_list['today']['dead']) + \
                    "今日新增出院病例:" + str(province_list['today']['heal']))
          if provice_name == '山东':
            for data_dict in city_list:
              prt_str.append(data_dict['name'] + ":" + "累计确诊病例:" + str(data_dict['total']['confirm']) + \
                      "累计死亡病例:" + str(data_dict['total']['dead']) + \
                      "累计出院病例:" + str(data_dict['total']['heal']) + \
                      "今日确诊病例:" + str(data_dict['today']['confirm']) + \
                      "今日死亡病例:" + str(data_dict['today']['dead']) + \
                      "今日出院病例:" + str(data_dict['today']['heal']))
    for item in prt_str:
      print(item)
    a = data_tree_dict
    # print(type(data_tree_dict['chinaTotal']))
    # print(data_tree_dict.keys())
  def write_page(self):
    pass
  def show(self):
    pass
  def show(self):
    self.down_page()
    self.parse_page()
if __name__ == '__main__':
  url = 'https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5'
  header = {
    'user - agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36'
  }
  province = ['湖北','山东']
  wf = epidemic_data(province)
  wf.show()

总结

以上所述是小编给大家介绍的python 爬取疫情数据的源码,希望对大家有所帮助!

Python 相关文章推荐
Python3中多线程编程的队列运作示例
Apr 16 Python
python pandas消除空值和空格以及 Nan数据替换方法
Oct 30 Python
浅谈numpy生成数组的零值问题
Nov 12 Python
用Python实现数据的透视表的方法
Nov 16 Python
python安装requests库的实例代码
Jun 25 Python
python print出共轭复数的方法详解
Jun 25 Python
python tornado修改log输出方式
Nov 18 Python
python Tensor和Array对比分析
Jan 08 Python
彻底搞懂 python 中文乱码问题(深入分析)
Feb 28 Python
python中Ansible模块的Playbook的具体使用
May 28 Python
基于Python pyecharts实现多种图例代码解析
Aug 10 Python
python实现视频压缩功能
Dec 18 Python
python代码如何实现余弦相似性计算
Feb 09 #Python
python字符串替换re.sub()实例解析
Feb 09 #Python
Python随机数函数代码实例解析
Feb 09 #Python
Python如何访问字符串中的值
Feb 09 #Python
python3 字符串知识点学习笔记
Feb 08 #Python
python入门之基础语法学习笔记
Feb 08 #Python
python实现飞机大战游戏(pygame版)
Oct 26 #Python
You might like
业余方法DIY电子管FM收音机
2021/03/02 无线电
百事可乐也出咖啡了 双倍咖啡因双倍快乐
2021/03/03 咖啡文化
优化PHP代码技巧的小结
2013/06/02 PHP
PHP使用array_multisort对多个数组或多维数组进行排序
2014/12/16 PHP
php实现微信公众号无限群发
2015/10/11 PHP
PHP删除二维数组中相同元素及数组重复值的方法示例
2017/05/05 PHP
修改jquery.lazyload.js实现页面延迟载入
2010/12/22 Javascript
JS+DIV实现鼠标划过切换层效果的实例代码
2013/11/26 Javascript
js中window.open打开一个新的页面
2014/08/10 Javascript
详解JavaScript编程中的数组结构
2015/10/24 Javascript
javascript伸缩型菜单实现代码
2015/11/16 Javascript
AngularJS包括详解及示例代码
2016/08/17 Javascript
javascript使用闭包模拟对象的私有属性和方法
2016/10/05 Javascript
简单几步实现返回顶部效果
2016/12/05 Javascript
总结js函数相关知识点
2018/02/27 Javascript
在 Linux/Unix 中不重启 Vim 而重新加载 .vimrc 文件的流程
2018/03/21 Javascript
vue列表单项展开收缩功能之this.$refs的详解
2019/05/05 Javascript
p5.js临摹动态图形实现方法详解
2019/10/23 Javascript
Python使用PyGreSQL操作PostgreSQL数据库教程
2014/07/30 Python
机器学习python实战之决策树
2017/11/01 Python
微信跳一跳python自动代码解读1.0
2018/01/12 Python
python3.6+opencv3.4实现鼠标交互查看图片像素
2018/02/26 Python
pytorch 把MNIST数据集转换成图片和txt的方法
2018/05/20 Python
Python发送邮件的实例代码讲解
2019/10/16 Python
深入剖析HTML5 内联框架iFrame
2016/05/04 HTML / CSS
海信商城:海信电视、科龙空调、容声冰箱官方专卖
2017/02/07 全球购物
JD Sports法国:英国篮球和运动时尚的领导者
2017/09/28 全球购物
Holiday Inn中国官网:IHG旗下假日酒店预订
2018/04/08 全球购物
什么是GWT的Module
2013/01/20 面试题
大学生四个方面的自我评价
2013/09/19 职场文书
乡镇网格化管理实施方案
2014/03/23 职场文书
不服从上级领导安排的检讨书
2014/09/14 职场文书
2014年小学重阳节活动策划方案
2014/09/16 职场文书
2014年后备干部工作总结
2014/12/08 职场文书
新闻报道稿范文
2015/07/23 职场文书
Java处理延时任务的常用几种解决方案
2022/06/01 Java/Android