Python3监控疫情的完整代码

我来为您详细讲解“Python3监控疫情的完整代码”的完整攻略。

简介

在当前新冠疫情面前,尽可能了解疫情动态变化对我们很有帮助。本文将介绍如何使用Python3编写一个简单的疫情数据监控程序,用以实时获取最新疫情数据,分析并可视化数据。我们将使用的数据源是新浪新闻SinaNews的新冠疫情实时追踪

步骤

步骤1 下载相关库

首先,为了能够运行本程序,我们需要安装一些第三方库。在终端中运行以下命令,安装相关库:

pip3 install requests
pip3 install beautifulsoup4
pip3 install pyecharts

上述命令分别安装了三个库:

  • requests:用于发送HTTP请求,获取网页内容。
  • beautifulsoup4:用于解析HTML文档,方便我们从网页中提取数据。
  • pyecharts:一个可视化工具库,用于将获取的数据可视化。

步骤2 获取网页内容

首先,我们需要向疫情实时追踪页面发送HTTP请求,获取页面的内容。我们可以使用requests库实现,具体代码如下:

import requests

url = 'https://news.sina.com.cn/zt_d/yiqing0121/'

def get_html(url):
    headers = {  
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0;Win64;x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
    }  
    try:
        r = requests.get(url, headers=headers)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        return r.text
    except:
        return "爬取失败"

上面的代码中,我们定义了一个名为 get_html() 的函数,函数接收一个参数 url,返回一个字符串类型的变量,表示获取的网页HTML内容。其中,我们设置了请求的headers信息,以模拟浏览器发送请求。

使用以上函数获取到页面的HTML内容后,在处理数据之前,我们使用BeautifulSoup库将其转化为树形结构,方便接下来的数据处理。

from bs4 import BeautifulSoup

html = get_html(url)
soup = BeautifulSoup(html, 'html.parser')

步骤3 解析网页内容,提取数据

现在我们已经获取了网页的HTML内容,并将其转化为了解析树,接下来就需要从中提取我们需要的数据了。

我们可以打开新浪新闻疫情实时追踪页面,使用Chrome浏览器的开发者工具(F12)来确定我们需要的数据所在标签。经过查看,我们可以找到我们所需要的信息都在名为“data”的script标签的内容中。

import re

data_tag = soup.find_all('script', attrs={'id': 'data'})
data_str = str(javascript_tag[0])

# 使用正则表达式提取“data”变量的内容
data = re.search(r'\[.*\]', data_str).group()

在上面的代码中,我们使用正则表达式从script标签中提取名为data的变量内容,存储到data变量中,data变量是一个json格式的字符串。

接下来,我们使用json库将数据转化为Python的字典类型,这样就方便我们进行数据处理和可视化了。

import json

data = json.loads(data)

通过以上步骤,我们已经成功地从页面上抓取了我们所需要的疫情数据,并且转化为了Python字典的数据类型。

步骤4 数据处理和可视化

我们的数据取回来了,接下来就是处理和可视化。这里我们使用pyecharts库来进行数据可视化。先看一下下面的代码:

from pyecharts.charts import Map

province_data = {}
for item in data['listByArea']:
    province = item['name']
    confirm = item['value']
    province_data[province] = confirm

map = Map(title='全国疫情地图', width=1200, height=600)
map.add('累计确诊人数', list(province_data.items()), 'china')
map.render()

这里我们使用Map图来展示全国各省/市的疫情情况。这段代码中,我们从字典中提取每个省份的确诊人数,然后使用Map.add()方法向地图中添加数据。

运行程序,我们可以得到一个以地图为背景的可视化数据图表。

我们再来看一下另一个以柱状图为背景的数据可视化,如下代码所示:

from pyecharts.charts import Bar

city_data = {}
for province in province_data:
    city_list = []
    if province == '中国':
        continue
    for item in data['listByArea']:
        if item['name'] == province:
            for city in item['city']:
                city_list.append(city['name'])
                city_list.append(city['confirm'])
                break
    city_data[province] = city_list

bar = Bar(title="全国疫情数据柱状图", width=1200)
for key in city_data:
    province_city = []
    province_confirm = []
    for i in range(0, len(city_data[key]), 2):
        province_city.append(city_data[key][i])
        province_confirm.append(city_data[key][i+1])
    bar.add(key, province_city, province_confirm)
bar.render()

这里我们使用了Bar图来展示全国各个省市的疫情情况。我们可以看到,我们成功地创建了一个以柱状图为背景的,一目了然的全国疫情数据地图。

总结

至此,我们已经完成了对Python3监控疫情的完整代码的攻略。通过以上步骤,我们成功地获取并解析了页面内容,提取出想要的数据,并使用pyecharts库实现了数据的可视化。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python3监控疫情的完整代码 - Python技术站

(0)
上一篇 2023年5月31日
下一篇 2023年5月31日

相关文章

  • Python 实现自动化Excel报表的步骤

    本文将会给大家介绍使用Python实现自动化Excel报表的步骤。在开始之前,我们需要确认已经安装Python及Pandas和openpyxl库,以便于数据计算和Excel文件读写操作。 步骤1:数据处理 在开始构建Excel报表之前,我们需要先进行数据处理。我们可以从数据库或者Excel文件中获取原始数据,然后用Pandas库进行数据的计算、清洗和整合。在…

    python 2023年5月13日
    00
  • 在NumPy中创建你自己的通用函数

    在NumPy中,我们可以使用通用函数(universal functions)对数组进行数学运算或其他操作。但在某些情况下我们可能需要自己定义一些通用函数,以适应我们的特殊需求。 下面是创建自己的通用函数的完整攻略: 1.使用 np.vectorize 函数创建通用函数 我们可以使用 np.vectorize 函数将一个标量函数转换成一个通用函数。该函数输入…

    python-answer 2023年3月25日
    00
  • Python合并多个Excel数据的方法

    以下是详细讲解“Python合并多个Excel数据的方法”的完整实例教程。 背景 在工作中,经常会遇到需要合并多个Excel数据的情况,手动合并往往耗时费力。而Python提供了多种方法可以用来合并多个Excel数据,本文将介绍其中一种基于pandas和openpyxl的方法。 准备工作 在开始实例之前,我们需要安装以下依赖库: pandas openpyx…

    python 2023年5月13日
    00
  • Python利用pywin32实现自动操作电脑

    Python利用pywin32实现自动操作电脑 什么是pywin32? pywin32是Python编程语言的扩展模块,用于在Python中使用Windows API(应用程序接口)进行Windows上的操作。它提供了Python程序员操作Windows操作系统中各种应用程序的方法。 pywin32的安装 首先前往pywin32官网进行下载,选择合适的版本进…

    python 2023年5月19日
    00
  • Python排序算法之冒泡排序

    Python排序算法之冒泡排序 冒泡排序是一种简单的排序算法,它重复地遍历要排序的列表,比较相邻两个元素,如果它们的顺序错误就交换它们的位置。通过多次遍历,最大的元素逐渐“冒泡”到列表的末尾,从而实现排序。在本攻略中,我们将介绍如何使用Python实现冒泡排序法。 步骤1:实现冒泡排序算法 在使用Python实现冒泡排序算法之前,我们需要先了解冒泡排序的基本…

    python 2023年5月14日
    00
  • Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围

    下面是针对“Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围”的完整攻略: 1. 设置坐标轴刻度间隔 在matplotlib中,我们可以使用xticks和yticks函数来设置坐标轴的刻度。 对于xticks来说,我们可以使用以下两种方式来设置坐标轴刻度间隔: 方法 1: 使用xticks函数的ticks参数,该参数接受一个以列表形…

    python 2023年5月18日
    00
  • Blender Python编程快速入门教程

    首先要明确的是Blender是一款专业的3D建模软件,Python是其内置的一种脚本语言,可以通过编写Python脚本来批量处理模型操作、自动生成场景等。因此,学习Blender Python编程需要确保自己具备一定的3D建模基础和Python编程基础。 以下是Blender Python编程快速入门教程的完整攻略: 一、安装Blender和Python环境…

    python 2023年6月3日
    00
  • python 读取excel文件生成sql文件实例详解

    下面我来详细讲解一下“Python读取Excel文件生成SQL文件实例详解”的完整实例教程。 一、背景介绍 很多企业或机构在进行数据管理、处理时,常会使用Excel进行数据记录和维护。但是,当数据量逐渐增大时,手动进行数据导入或处理显然已经不能满足需求了。因此,我们需要使用Python编写程序,将Excel文件中的数据进行读取,然后将其生成对应的SQL文件,…

    python 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部