新型冠状病毒肺炎分析

2020年的春节,因为全国性的爆发新型冠状病毒肺炎,疫情严重,为了不给国家添麻烦,正月初二从老家返回后一直宅在家里。每天关注疫情的进展,就对疫情做了一次数据分析。数据从网易的肺炎疫情实时动态播报获取(http://news.163.com/special/epidemic/)。本次分析中使用了如下技术:

  • 爬虫 —— 获取肺炎疫情数据

  • 数据可视化 —— 数据分析

  • 机器学习 —— 实时预测

  • 应用构建 —— 展示数据

因为,Python2从2020年开始停止支持,因此,在本次分析中使用Python3进行。

获取肺炎疫情数据

每天国家以及各省市的卫健委都会通报疫情的实时数据,各大门户网站都会从卫健委获取数据,实时通报,在这里选择从网易获取数据。数据获取使用Python的类库requests-html。首先,使用如下命令安装类库:

pip install requests-html

类库安装成功后,首先使用requests-html从网易获取数据,并使用整理数据。代码如下:

from requests_html import HTMLSession


with HTMLSession() as session:
    r = session.get('http://news.163.com/special/epidemic/')
    r.html.render()  # 首次使用,自动下载chromium
    html = r.html.html
    target = html.split('<script>')[3]
    target = target.split('</script>')[0]
    dataset = target.split(" = ")
    details = dataset[1].replace('window.data_by_date', '').replace('\n', '').replace(' ', '')
    details = details.replace('name', '"name"')
    details = details.replace('province', '"province"')
    details = details.replace('confirm', '"confirm"')
    details = details.replace('suspect', '"suspect"')
    details = details.replace('heal', '"heal"')
    details = details.replace('dead', '"dead"')
    details = eval(details)
    # print(details)
    data_by_date = dataset[2].replace(';', '').replace('\n', '').replace(' ', '').replace('\t', '')
    # print(data_by_date)
    data_by_date = data_by_date.replace('date:"', '"date":"2020.')
    data_by_date = data_by_date.replace('confirm', '"confirm"')
    data_by_date = data_by_date.replace('suspect', '"suspect"')
    data_by_date = data_by_date.replace('heal', '"heal"')
    data_by_date = data_by_date.replace('dead', '"dead"')
    data_by_date = data_by_date.replace('"confirm"_added', '"confirm_added"')
    data_by_date = data_by_date.replace('.', '-')
    data_by_date = eval(data_by_date)
    for i in range(1, len(data_by_date)):
        data = data_by_date[i]
        data['confirm_added'] = data['confirm'] - data_by_date[i -1]['confirm']


    for data in data_by_date:
        print(data)

在1月30的调试结果如下:

{'date': '2020-01-20', 'confirm': 291, 'suspect': 0, 'heal': 0, 'dead': 6, 'confirm_added': 93}
{'date': '2020-01-21', 'confirm': 440, 'suspect': 0, 'heal': 0, 'dead': 9, 'confirm_added': 149}
{'date': '2020-01-22', 'confirm': 571, 'suspect': 393, 'heal': 28, 'dead': 17, 'confirm_added': 131}
{'date': '2020-01-23', 'confirm': 830, 'suspect': 1072, 'heal': 34, 'dead': 25, 'confirm_added': 259}
{'date': '2020-01-24', 'confirm': 1287, 'suspect': 1965, 'heal': 38, 'dead': 41, 'confirm_added': 457}
{'date': '2020-01-25', 'confirm': 1975, 'suspect': 2684, 'heal': 49, 'dead': 56, 'confirm_added': 688}
{'date': '2020-01-26', 'confirm': 2744, 'suspect': 5794, 'heal': 51, 'dead': 80, 'confirm_added': 769}
{'date': '2020-01-27', 'confirm': 4515, 'suspect': 6973, 'heal': 60, 'dead': 106, 'confirm_added': 1771}
{'date': '2020-01-28', 'confirm': 5974, 'suspect': 9239, 'heal': 103, 'dead': 132, 'confirm_added': 1459}
{'date': '2020-01-29', 'confirm': 7711, 'suspect': 12167, 'heal': 124, 'dead': 170, 'confirm_added': 1737}

接下来将会把数据保存到数据库,留待以后分析时使用。数据量相对较小,使用sqlite3来保存数据。Python3中内置了sqlite,可以直接导入sqlite3来创建,管理数据库。具体的数据库的操作,下次更新。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值