数据可视化基础案例[Python]

本文通过Python获取并整理百度疫情实时数据,利用requests库请求数据,编写get_data.py、execution.py、draw_map.py和main.py四个模块,实现数据获取、整理和疫情地图的绘制,提供实时疫情动态记录。
摘要由CSDN通过智能技术生成

摘要

这是一篇人类低质量python数据分析文章,于20年暑假学习完成。
参考文章
2020年,世界各地爆发了一起新型冠状病毒肺炎公共卫生事件,给全世界的人民带来了不可估量的损失。时至今日,经过全国人民的共同努力,国内疫情现阶段处于可控的局面。本文将通过使用Python获取百度疫情实时大数据报告中的数据,对获取的数据进行整理,然后绘制成疫情地图进行数据可视化,实现实时的疫情动态记录,便于更精确了解疫情实时情况。

内容结构

在这里插入图片描述
创建get_data.py模块,使用Python的requests库请求数据, 目标网址
,然后对数据进行初步整理,输出数据表;创建execution.py模块用于整理各省份的实时数据;创建draw_map.py模块用于绘制实时疫情地图;最后,编写main.py总模块,对各模块进行整合,实现对整个流程的控制。

内容详情

下面介绍各模块,首先会贴出在Typora中的源码截图,便于直观进行源码阅读,其后附上写入记事本的文本代码和源文件以及各个模块的输出文件。

(1) 获取数据:get_data.py

导入相关模块,创建一个Get_data类,用于封装获取数据的所有函数,其中第一个函数,是一个简单的爬虫,用于爬取目标网站的数据,并将获取的数据写入一个本地目录的文本文件。

import requests
from lxml import etree
import json
import re
import openpyxl


class Get_data():
    def get_data(self):
        # 目标url
        url = "https://voice.baidu.com/act/newpneumonia/newpneumonia/"

        # 伪装请求头
        headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
                          'Chrome/80.0.3987.149 Safari/537.36 '
        }

        # 发出get请求
        response = requests.get(url,headers=headers)

        # 将请求的结果写入文件,便于分析
        with open('html.txt', 'w') as file:
            file.write(response.text)

    def get_time(self):
        with open('html.txt','r') as file:
            text = file.read()
        # 获取更新时间
        time_in = re.findall('"mapLastUpdatedTime":"(.*?)"',text)[0]
        time_out = re.findall('"foreignLastUpdatedTime":"(.*?)"',text)[0]
        print('国内疫情更新时间为 '+time_in)
        print('国外疫情更新时间为 '+time_out)
        return time_in,time_out

    def parse_data(self):
        with open('html.txt','r') as file:
            text = file.read()
        # 生成HTML对象
        html = etree.HTML(text)
        # 解析数据
        result = html.xpath('//script[@type="application/json"]/text()')
        # print(type(result))
        result = result[0]
        # print(type(result))
        result = json.loads(result)
        # print(type(result))
        result = json.dumps(result['component'][0]['caseList&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值