疫情可视化与舆情分析


前言

这是上半年其中一门课程的作业,主要是基于Django框架开发的一个可视化平台,利用python爬虫从各大网站爬取数据,存储在MySQL中,最终页面由echarts和html共同构建,实现前后端的互动。系统用可视化的方式实时呈现疫情动态,让用户可以清晰、直观的了解当前疫情走势。


一、数据采集

这里代码过多,我找几个比较有代表性的进行展示,所有爬虫代码都会在最后提供链接

各省疫情数据爬取.py

import re
import requests
import pandas as pd
import json
data_city={
   }
headers = {
   'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'}
url = 'http://www.maps7.com/china_province.php'
page = requests.get(url,headers=headers)
file = page.text
for num in range(0,34):
    cities = []
    city=''
    province=''
    if (num == 33):
        one = re.findall('<a name="33"(.*)</a>', file)
    else:
        one = re.findall('<a name="' + str(num) + '" href=.*?>(.*?)<a name="' + str(num + 1) + '" href=.*?>', file)
    for i in one:
        if (num == 0):
            province = re.findall('(.*?)</a></h4>', i)
        else:
            province = re.findall('<h4>(.*?)</h4>', i)
        city = re.findall('<a href="/china/dianziditu.*?>(.*?)</a>', i)
    for i in province:
        if (len(city) != 0):
            for j in city:
                cities.append(j)
        else:
            cities.append(i)
    data_city[i.replace('省','').replace('市','')]=cities

data_city["广西"] = data_city.pop("广西壮族自治区")
data_city["新疆"] = data_city.pop("新疆维吾尔自治区")
data_city["香港"] = data_city.pop("香港特别行政区")
data_city["澳门"] = data_city.pop("澳门特别行政区")
data_city["内蒙古"] = data_city.pop("内蒙古自治区")
data_city["宁夏"] = data_city.pop("宁夏回族自治区")
for i in data_city.keys():
    for j in data_city[i]:
        ci = j
        if len(j) != 2:
            j = j.replace('市', '').replace('区', '').replace('县', '')
        url = 'https://api.inews.qq.com/newsqa/v1/query/pubished/daily/list?province={0}&city={1}'.format(i, j)
        response = requests.post(url, headers=headers)
        data = json.loads(response.text)['data']
        date = []
        province = []
        confirm = []
        dead = []
        province_city = []
        heal = []
        try:
            for num in data:
                if num['date'] == '03.01':
                    index = data.index(num)
        except:
            index = 0
        id = 1
        for num in range(index, index + 31):
            if len(str(id)) == 1:
                date.append('03.0' + str(id))
                id = id + 1
            else:
                date.append('03.' + str(id))
                id = id + 1
            province.append(i)
            province_city.append(ci)
            try:
                confirm.append(data[num]['confirm'])
            except:
                confirm.append(0)

            try:
                dead.append(data[num]['dead'])
            except:
                dead.append(0)
            try:
                heal.append(data[num]['heal'])
            except:
                heal.append(0)
        if province_city[0] == '朝阳区':
            dataframe = pd.DataFrame(
                {
   'date': date, 'province': province, 'city': province_city, 'confirm': confirm, 'dead': dead,
                 'heal': heal})
            dataframe.to_csv("各省疫情情况.csv", index=False, sep=
  • 7
    点赞
  • 86
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
好的,全球疫情数据的可分析是一个很有趣的主题。以下是实现此类分析的一些步骤: 1. 获取数据:您可以从公开的数据源中获取全球疫情数据,如世界卫生组织(WHO)和约翰斯·霍普金斯大学等机构提供的数据。获取数据的方式可以使用Python的requests库进行API调用,也可以使用Python的爬虫库进行数据抓取。获取的数据需要进行清洗和处理,以便进行可分析。 2. 数据可:您可以使用Python的可库,如matplotlib、seaborn和plotly等,对数据进行可。一些常见的可包括地图、线图和条形图等。使用地图可以将数据按照国家和地区进行可展示,线图和条形图可以将数据按照时间轴进行展示,以便更好地展示疫情的传播趋势和变情况。 3. 数据分析:您可以使用Python的数据分析库,如pandas和numpy等,对数据进行分析。例如,您可以计算每个国家或地区的确诊病例数和死亡病例数等指标,并将其可展示。您还可以分析疫情的影响因素,如人口密度、医疗水平等等。 4. 交互式展示:您可以使用Python的交互式可工具,如plotly和bokeh等,对可图表进行交互式展示。例如,您可以添加下拉菜单、滑块和按钮等控件,以便用户可以根据自己的需求和兴趣进行数据的筛选和展示。 希望这些步骤可以帮助您进行全球疫情数据的可分析

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值