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实现获取网站PR及百度权重
Jan 21 Python
深入理解python中函数传递参数是值传递还是引用传递
Nov 07 Python
Python实现判断字符串中包含某个字符的判断函数示例
Jan 08 Python
python爬虫中get和post方法介绍以及cookie作用
Feb 08 Python
Python测试人员需要掌握的知识
Feb 08 Python
使用Python进行目录的对比方法
Nov 01 Python
Django中的用户身份验证示例详解
Aug 07 Python
Python字符串和正则表达式中的反斜杠('\')问题详解
Sep 03 Python
python字符串,元组,列表,字典互转代码实例详解
Feb 14 Python
django创建css文件夹的具体方法
Jul 31 Python
python如何实现图片压缩
Sep 11 Python
使用py-spy解决scrapy卡死的问题方法
Sep 29 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
防止本地用户用fsockopen DDOS攻击对策
2011/11/02 PHP
探讨如何在PHP开启gzip页面压缩实例
2013/06/09 PHP
PHP中使用glob函数实现一句话删除某个目录下的所有文件
2014/07/22 PHP
20个2014年最优秀的PHP框架回顾
2014/10/22 PHP
Yii2组件之多图上传插件FileInput的详细使用教程
2016/06/20 PHP
使用prototype.js进行异步操作
2007/02/07 Javascript
网页自动跳转代码收集
2009/09/27 Javascript
jquery1.4 教程二 ajax方法的改进
2010/02/25 Javascript
JQuery的$和其它JS发生冲突的快速解决方法
2014/01/24 Javascript
Jquery插件分享之气泡形提示控件grumble.js
2014/05/20 Javascript
javascript中SetInterval与setTimeout的定时器用法
2015/08/24 Javascript
基于JavaScript将表单序列化类型的数据转化成对象的处理(允许对象中包含对象)
2015/12/28 Javascript
分享两款带遮罩的jQuery弹出框
2015/12/30 Javascript
Extjs实现下拉菜单效果
2016/04/01 Javascript
jQuery 限制输入字符串长度
2016/06/20 Javascript
select下拉框插件jquery.editable-select详解
2017/01/22 Javascript
canvas实现爱心和彩虹雨效果
2017/03/09 Javascript
微信小程序实现留言板(Storage)
2018/11/02 Javascript
vue App.vue中的公共组件改变值触发其他组件或.vue页面监听
2019/05/31 Javascript
JS实现数据动态渲染的竖向步骤条
2020/06/24 Javascript
Openlayers实现扩散的动态点(水纹效果)
2020/08/17 Javascript
浅谈Python NLP入门教程
2017/12/25 Python
Python字符串格式化输出代码实例
2019/11/22 Python
python rolling regression. 使用 Python 实现滚动回归操作
2020/06/08 Python
详解python的变量缓存机制
2021/01/24 Python
利用CSS3的3D效果制作正方体
2020/03/10 HTML / CSS
远程调用的原理
2014/07/05 面试题
同步和异步有何异同,在什么情况下分别使用他们
2013/04/09 面试题
市政施工员自我鉴定
2014/01/15 职场文书
财务部总监岗位职责
2014/03/12 职场文书
消防安全宣传标语
2014/06/07 职场文书
土木工程专业本科生求职信
2014/10/01 职场文书
硕士学位申请报告
2015/05/15 职场文书
python某漫画app逆向
2021/03/31 Python
Python实战之OpenCV实现猫脸检测
2021/06/26 Python
vue组件vue-esign实现电子签名
2022/04/21 Vue.js