admin 管理员组

文章数量: 1086019


2024年4月16日发(作者:全网码商发卡网)

基于Python的疫情数据的爬取与分析

作者:谭康裕 赵元成

来源:《科学导报·学术》2020年第30期

摘 要:目的:直观显示新型冠状病毒(2019-nCoV)肺炎疫情的发展趋势,为复工复产的

决策提供决策依据。方法:基于Python语言、使用requests库下载网页,使用re读取目标数

据,使用csv存储目标数据、使用pyecharts展示疫情地图分布和疫情发展趋势图、使用

Javascript脚本显示趋势图,包括疫情的地图分布,全国疫情新增趋势,全国累计/疑似趋势,

全国累计治愈/死亡趋势,全国各省疫情概览表等。结果:得到疫情发展趋势的可视化图表,

可以直观显示疫情的发展趋势,全国各省疫情概览表等。我们可以看到,疫情已经趋于平稳。

结论:2019-nCoV肺炎疫情的防控措施是有效的,各地方政府严格执行公共安全政策,保证了

人民的生命安全,全力遏制了2019-nCoV的传播,夺取了战“疫”的最终胜利。

关键词:新型冠状病毒;Python;数据可视化;趋势

新型冠状病毒(2019-nCoV)是一种β属的冠状病毒,自2019年12月在湖北省武汉市发

现 2019-nCoV以来,疫情快速蔓延[1]。国家卫生健康委员会疫情通报显示,截至 2020年4月

25日早上9点,累计确诊人数 82816人,累计治愈出院病例77346例,累计死亡病例4632例

[2]。为快速抑制病情蔓延,国家已出台多种举措,如延长春节假期、企业延迟复工、学校延

期开学、限制出行、公共场所要佩戴口罩,居家隔离等。本文基于Python,通过网络爬虫技术

收集2019-nCoV疫情数据,通过数据可视化手段,给出疫情的地图分布,全国疫情新增趋

势,全国累计/疑似趋势,全国累计治愈/死亡趋势,全国实时疫情概览表等。

1 对象与方法

1.1 数据来源

本文疫情发展数据取自中国疾病预防控制中心周报(以下简称中国疾控中心周报)和丁香

园,其地址参看“参考文献”中的[2]和[3]。随着2019-nCoV的快速传播,自1月25日开始,各

地纷纷启动“重大突发公共卫生事件Ⅰ级响应”,因此我们认定从1月25 日开始,病毒即进入

传播状态。由于数据是从中国疾病预防控制中心周报中读取,比较完整的数据是从1月29日

开始,因此,本次采集的数据就是从1月29日开始,直至4月25日零点。

1.2 疫情数据提取的需求

设计疫情数据提取的代码要解决的以下几个问题:

(1)下载网页:根据给定的URL下载其HTML网页。

(2)网页解析:根据网页结构信息,提取网页数据。

(3)数据存储:把从网页中解析出来的数据CSV文件中。

1.3 疫情数据提取的實现方法

(1)HTML下载器

本次设计使用requests库和requests-html库来下载网页,分别使用requests来下载中国疾

病预防控制中心周报的数据,使用requests-html来下载丁香园的数据。使用requests-html下载

网页的核心代码如下所示:

import requests

url = 'http:///news/'

r = (url) #下载网页

使用requests-html下载网页的核心代码如下所示:

from requests_html import HTMLSession

dxyurl = 'https:///newh5/view/pneumonia'

response = (dxyurl) #下载网页

(2)HTML解析器

Python使用BeautifulSoup来进行HTML的解析,提取目标数据。在中国控制中心周报

中,我们使用BeautifulSoup直接读取其注释部分,而不是按行读取目标数据所在的XPath。在

中国控制中心周报网页中,目标文本是位于标签

中的注释文

本。通过分析中国控制中心周报网页数据结构,我们可以通过分割

标签,同时为了数据的

提取,还要把

标签添加回原来的数据项中。提取数据的代码如下:

soup = BeautifulSoup(page,'')

content = _all("div",'box-article-content') #数据返回为列表

content_to_string = str(content) #将列表转换成字符串,使用正则表达式提取

pattern = e(r"<!--(.*?)-->") # 抽取<!--(.*?)-->中间的文本

通过构建正则表达式,提取网页中的疫情数据。提取的疫情数据分别为日期、新增确诊/

疑似病例、累计确诊/现存疑似病例、新增死亡/治愈人数、累计死亡/治愈人数。其正则表达式

的构建如下所示:

date_regex = r"(.*?)<" #提取日期的正则表达式

conf_suspe_data_regex = r"

Confirmed cases:(.*?)new,(.*?)total. Suspected

cases:(.*?)new,(.*?)total.<" #提取新增确诊/疑似病例、累计确诊/现存疑似病例的正

则表达式

dea_reco_data_regex = r"

Deaths:(.*?)new,(.*?)total. Recoveries:(.*?)

new,(.*?)total.<" #提取新增死亡/治愈人数、累计死亡/治愈人数的正则表达式

在丁香园的网页中,通过查看网页元素,我们可以看到,目标数据在标签

这部分需要在后端代码中添加相应的文件路径,实现前后端的关联。在根目录处需要添加

文件其核心代码如下的示:

@("/")

def index():

content = table_base()

return render_template("",content=content)

使用pyecharts用于生成 Echarts 图表之后,也要添加相应的URL才能展示在前端上,其

核心代码如下所示:

@("/mapChart") #对应文件添加URL,此处文件为中国地图

def get_map_chart( ):

c = map_base( )

return _options_with_quotes( )

对于其他使用pyecharts生成的图表,包括新增死亡/治愈、累计确诊/疑似、累计死亡/治愈

的发展曲线,都是使用前后端关联的方法,展示到前端页面上,使结果直观呈现出来。

3 结果

3.1 全国疫情地图分布

使用pyecharts生成的地图信息如下,从图中我们可以看到省份在这次疫情中的数据分

布,本次采集显示的数据分别为确诊人数、治愈人数和死亡人数。

3.2 全国新增确诊/疑似发展曲线

使用pyecharts生成的新增确诊/疑似发展曲线如下图所示:

4 讨论

本文应用Python进行对数据的爬取,根据中国疾控中心周报和丁香园中的数据生成显示

图表,得出本次疫情相关数据的走势图,并结合实际生活中情况,可以看到:在春运的期间,

新冠病毒在人口迁移过程中出现大规模的传播。经过3个多月的抗“疫”战争,病毒被成功遏

制,处于可控范围内,为世界防疫工作做出了一个典范,但防疫工作仍不可松懈,在常态化的

防控疫情的情况下,继续要严格依照国家公共卫生政策,做好持久化防疫的做准备,守住抗

“疫”胜利的果实。

参考文献

[1] 耿辉,徐安定,王晓艳,张勇,尹小妹,马茂,吕军.基于SEIR模型分析相关干预措

施在新型冠状病毒肺炎疫情中的作用[J/OL].暨南大学学报(自然科学与医学版):1-7[2020-

04-26].http:///kcms/detail/.

[2] 中国疾病预防控制中心.CCDCWeekly[EB/OL].[2020-0426].http:

///news/.

[3] 丁香园. [EB/OL].[2020-04-26].https:///ncovh5/view/pneumonia.

[4] 范传辉. Python爬虫开发与项目实践[M].北京:机械工业出版社. 2017.6:140-146


本文标签: 数据 疫情 使用 网页 提取

更多相关文章

奇妙搜索2024网页版

1月前

奇妙搜索是一款功能超级强大的资源搜索神器&#xff0c;聚合影视搜索,网盘搜索,种子磁力搜索,文献学术搜索,多平台在线翻译&#xff0c;为您提供最优质的急速搜索服务。奇妙搜索网页版https:qmss

数据库的数据太多了怎么办?特别大的访问量到数据库上怎么办?分库分表?| 大别山码将

1月前

数据库的数据太多了怎么办&#xff0c;一个表有一亿个数据&#xff08;特别大的访问量到数据库上&#xff09;&#xff1f;分库分表&#xff1f;Mysql的主从复制 1.使用优化查询的方法

使用 ReclaiMe Pro 恢复群晖 Synology NAS 设备数据

1月前

ReclaiMe Pro 软件提供对复杂阵列的分析及恢复功能。对于复杂的智能存储设备 ReclaiMe Pro 提供了一键式识别阵列信息的功能。为用户免去了使用其他数据恢复软件所要求的复杂软件应用技巧。 如何使用 ReclaiMe Pro

影刀---实现我的第一个抓取数据的机器人

1月前

你们要的csdn自动回复机器人在这里文末哦&#xff01; 这个上传的资源要vip下载&#xff0c;如果想了解影刀这个软件的话可以私聊我&#xff0c;我发你 目录 1.网页对象2.网页元素3.相似元素组4.元素

Python打开浏览器网页的方法

1月前

import webbrowserwebbrowser.open("http:www.baidu")

python保存CSDN网页到本地二 打开关闭浏览器

1月前

这个地方需要使用到的就是python的selenium库&#xff0c;这里有一个博客对于安装讲解的很棒&#xff0c;点这里 注意&#xff1a;如果是之前pycharm已经打开的&#xff0c;切记重新打

设置网页默认为360浏览器极速模式打开

1月前

设置网页默认为360浏览器极速模式打开 在head标签中添加一行代码&#xff1a; <html><head><meta name"renderer" content&quo

爬虫Selenium+Chrome 控制浏览器,打开百度网页,输入搜索关键词,点击回车,截取搜索页面

1月前

输入关键词&#xff0c;百度搜索内容&#xff0c;生成搜索结果页面照片from selenium import webdriverfrom time import sleepfrom selenium.webdri

jquery 打开新网页

1月前

$(#_report).attr(src, index.phphomepdfviewviewer?filedata).show();可以替换为以下 1、带参数打开新窗口 $window.open("bdfenceb

在html中页面不全,网页显示不全,教您网页显示不全怎么办

1月前

当我们在电脑系统中使用IE浏览器浏览网页时&#xff0c;偶尔会出现是否只查看安全内容的提示&#xff0c;甚至有可能会出现页面显示不全的情况。一般遇到这种情况会选择继续查看网页内容&#xff0c;怎么去处理&

如何解压7z文件?8种方法(WinMac手机网页端)

18天前

7z 文件是一种高效的压缩文件格式&#xff0c;由 7 - Zip 软件开发者所采用。它运用独特的压缩算法&#xff0c;能显著缩小文件体积&#xff0c;便于存储与传输各类数据&#xff0c;像软件安装包

《CWAP-404》,第7章:MAC操作(7.1,分析数据帧交换)

18天前

数据帧交换是驱动用户使用WLAN的核心操作。用户通常不太关注信标帧&#xff08;Beacon frames&#xff09;、探测请求帧&#xff08;Probe Request frames&#xff09;

java在项目中用浏览器打开指定的网页

17天前

有个需求就是在java项目中打开一个固定网址&#xff0c;整理一下使用的方法。 package com.demo;import java.io.File;public class OpenPageDemo {public stat

edge浏览器无法保存网页登录状态解决方案

17天前

可能会遇到的问题&#xff1a; 各大网页在退出后&#xff0c;登陆状态消失&#xff0c;下次再打开该网页&#xff0c;就要重新登录。 解决方案&#xff1a; 打开设置——>隐私、搜索和

html浏览器图片不显示图片,教你网页图片显示不出来怎么办

16天前

网页是构成网站的基本元素&#xff0c;是一个包含HTML标签的纯文本文件&#xff0c;而文字与图片是构成一个网页的最基本的元素。今天&#xff0c;小编就给大家介绍一下网页图片显示不出来的解决方法&#xf

excel出现为了防止数据流失,无法移走非空单元格怎么办

16天前

excel出现为了防止数据流失&#xff0c;无法移走非空单元格怎么办 1.问题 excel出现为了防止数据流失&#xff0c;无法移走非空单元格怎么办 2.原因 出现这种问题的原因有&#xff1a; Ex

m3u8下载插件,视频下载插件,抓取网页视频插件,Video DownloadHelper

16天前

可以直接在网页中&#xff0c;下载视频的浏览器插件 “Video DownloadHelper” 我用的是火狐浏览器&#xff0c;下面以火狐浏览器举例&#xff0c;Google浏览器大致相同 1、在浏览器中输入

【愚公系列】2024年02月 大数据教学课程 016-Hadoop预备知识

16天前

&#x1f3c6; 作者简介&#xff0c;愚公搬代码 &#x1f3c6;《头衔》&#xff1a;华为云特约编辑&#xff0c;华为云云享专家&#xff0c;华为开发者专家&#xff0

NextChat:一键免费部署你的私人 ChatGPT 网页应用,支持 Claude, GPT4 &amp; Gemini Pro 模型。(MCP需要2.16版本才支持)

15天前

NextChat&#xff1a;一键免费部署你的私人 ChatGPT 网页应用&#xff0c;支持各种流行的AI大模型。 官网&#xff1a;https:githubChatGPTNextWebNextCh

探秘格式化:数据危机与恢复之道

14天前

引言 在数字化飞速发展的当下&#xff0c;数据已然成为我们生活中不可或缺的一部分。无论是珍贵的家庭照片、重要的工作文档&#xff0c;还是企业关键的业务数据&#xff0c;都承载着我们的回忆、努力和希望。然而&a

发表评论

全部评论 0
暂无评论