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 相关文章推荐
Python抓取Discuz!用户名脚本代码
Dec 30 Python
Python的gevent框架的入门教程
Apr 29 Python
Python字典简介以及用法详解
Nov 15 Python
利用Python中unittest实现简单的单元测试实例详解
Jan 09 Python
Python使用正则表达式抓取网页图片的方法示例
Apr 21 Python
python获取程序执行文件路径的方法(推荐)
Apr 26 Python
Django跨域请求问题的解决方法示例
Jun 16 Python
Flask框架重定向,错误显示,Responses响应及Sessions会话操作示例
Aug 01 Python
python抓取多种类型的页面方法实例
Nov 20 Python
简单了解pytest测试框架setup和tearDown
Apr 14 Python
详解Python 循环嵌套
Jul 09 Python
Python 机器学习工具包SKlearn的安装与使用
May 14 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
php minixml详解
2008/07/19 PHP
让PHP显示Facebook的粉丝数量方法
2014/01/08 PHP
thinkphp3.2.2前后台公用类架构问题分析
2014/11/25 PHP
php防止网站被攻击的应急代码
2015/10/21 PHP
php接口技术实例详解
2016/12/07 PHP
关于PHP转换超过2038年日期出错的问题解决
2017/06/28 PHP
PHP使用openssl扩展实现加解密方法示例
2020/02/20 PHP
JavaScipt中的Math.ceil() 、Math.floor() 、Math.round() 三个函数的理解
2010/04/29 Javascript
JavaScript单元测试ABC
2012/04/12 Javascript
js判断选择的时间是否大于今天的代码
2013/08/20 Javascript
解析JavaScript中的不可见数据类型
2013/12/02 Javascript
Nodejs Post请求报socket hang up错误的解决办法
2014/09/25 NodeJs
js判断滚动条是否已到页面最底部或顶部实例
2014/11/20 Javascript
flash+jQuery实现可关闭及重复播放的压顶广告
2015/04/15 Javascript
javascript判断并获取注册表中可信任站点的方法
2015/06/01 Javascript
javascript设计模式之对象工厂函数与构造函数详解
2015/07/30 Javascript
javascript数组去重的六种方法汇总
2015/08/16 Javascript
纯HTML5制作围住神经猫游戏-附源码下载
2015/08/23 Javascript
JS组件Bootstrap Table布局详解
2016/05/27 Javascript
深入理解JavaScript定时机制
2016/10/27 Javascript
基于NodeJS+MongoDB+AngularJS+Bootstrap开发书店案例分析
2017/01/12 NodeJs
JS实现合并json对象的方法
2017/10/10 Javascript
详解如何配置vue-cli3.0的vue.config.js
2018/08/23 Javascript
如何使用less实现随机下雪动画详解
2019/01/02 Javascript
详解nodejs 开发企业微信第三方应用入门教程
2019/03/12 NodeJs
vue+elementUI 实现内容区域高度自适应的示例
2020/09/26 Javascript
[02:15]你好,这就是DOTA!
2015/08/05 DOTA
Python设计模式之中介模式简单示例
2018/01/09 Python
Apache部署Django项目图文详解
2019/07/30 Python
西海岸男士和男童服装:Johnnie-O
2018/03/15 全球购物
仓库保管员岗位职责
2013/12/20 职场文书
绩效工资分配方案
2014/01/18 职场文书
培训主管岗位职责
2014/02/01 职场文书
电大毕业生自我鉴定
2014/04/10 职场文书
小学公民道德宣传日活动总结
2015/03/23 职场文书
资料员岗位职责范本
2015/04/13 职场文书