每日一练:Python爬虫爬取全国新冠肺炎疫情数据实例详解,使用beautifulsoup4库实现
Python 爬虫篇 - 爬取全国新冠肺炎疫情数据实例详解
- 效果图展示
- 第一章:疫情信息的下载与数据提取
- ① 爬取页面数据到本地
- ② json 字符串正则表达式分析
- ③ 提取数据中的 json 字符串
- 第二章:疫情信息数据分析
- ① 提取 json 字符串里的省份疫情数据并显示
- ② 显示查询省份的城市疫情数据
[ 系列文章篇 ]
Python 地图篇 - 使用 pyecharts 绘制世界地图、中国地图、省级地图、市级地图实例详解
[ 专栏推荐 ]
Python 短视频自动化发布,包含抖音、快手、bilibili、小红书、微视、好看视频、西瓜视频、微信视频号等 10 余种平台
效果图展示
这是省份的:
这是城市的:
第一章:疫情信息的下载与数据提取
① 爬取页面数据到本地
通过 BeautifulSoup
库解析代码,将疫情信息内容下载到本地 txt 文件用于数据分析使用。
from urllib.request import urlopen
from bs4 import BeautifulSoupdef dxy_data_down(article_url):"""xiaolanzao, 2022.02.27【作用】下载疫情数据信息【参数】article_url : 需要下载数据的地址【返回】无"""url = urlopen(article_url)soup = BeautifulSoup(url, 'html.parser') # parser解析f = open("疫情数据.txt","w",encoding="utf-8")f.write(str(soup))f.close()dxy_data_down("https://ncov.dxy.cn/ncovh5/view/pneumonia")
下载后的数据
② json 字符串正则表达式分析
通过分析文件查找到
需要数据的 json 字符串前关键词 "try { window.getAreaStat = "
json 字符串后关键词 }catch(e){}
(.*?)
是匹配所有内容。
整合的正则表达式为如下:
# json字符串前后关键词
json_start = "try { window.getAreaStat = "
# 字符串包含的括号要进行转义
json_end = "}catch\(e\){}"# json字符串正则匹配
# (.*?)是匹配所有内容
regular_key = json_start + "(.*?)" + json_end
③ 提取数据中的 json 字符串
读取本地文件,提取里面的 json 字符串数据。
import redef get_json():"""xiaolanzao, 2022.02.27【作用】读取本地文件,获取json信息【参数】无【返回】json字符串"""# 读取本地文件f = open("疫情数据.txt", "r", encoding="utf-8")f_content = f.read()f.close()# json字符串前后关键词json_start = "try { window.getAreaStat = "# 字符串包含的括号要进行转义json_end = "}catch\(e\){}"# json字符串正则匹配# (.*?)是匹配所有内容regular_key = json_start + "(.*?)" + json_end# 参数rs.S可以无视换行符,将所有文本视作一个整体进行匹配re_content = re.search(regular_key, f_content, re.S)# group()用于获取正则匹配后的字符串content = re_content.group()# 去除json字符串的前后关键词content = content.replace(json_start, '')# 尾巴要去掉转义符号json_end = "}catch(e){}"content = content.replace(json_end, '')print(content)return contentjson_content = get_json()
读取后的内容:
第二章:疫情信息数据分析
① 提取 json 字符串里的省份疫情数据并显示
方法里所传入的数据是上面返回的 json 字符串。
import jsondef display_provinces(json_content):"""xiaolanzao, 2022.02.27【作用】展示省份疫情【参数】json_content : json字符串【返回】无"""# 将字符串转化为字典json_data = json.loads(json_content)# 省份数据展示print("全国各省份疫情数据如下:")for i in json_data:print("【省份名】:" + i["provinceName"])print("现存确诊:" + str(i["currentConfirmedCount"]))print("累计确诊:" + str(i["confirmedCount"]))print("死亡:" + str(i["deadCount"]))print("治愈:" + str(i["curedCount"]))print()display_provinces(json_content)
运行效果图:
可以对比下数据是一致的
② 显示查询省份的城市疫情数据
城市数据在省份数据的 cities 里面。
import jsondef display_citys(json_content, province_name):"""xiaolanzao, 2022.02.27【作用】展示城市疫情【参数】json_content : json字符串province_name : 需要查询的省份名【返回】无"""# 将字符串转化为字典json_data = json.loads(json_content)# 省份数据展示print(province_name + "疫情数据如下:")for i in json_data:# print(i)if(i["provinceName"] == province_name):# 读取里面的城市信息try:citys = i["cities"]for ii in citys:print("【城市名】:" + ii["cityName"])print("现存确诊:" + str(ii["currentConfirmedCount"]))print("累计确诊:" + str(ii["confirmedCount"]))print("死亡:" + str(ii["deadCount"]))print("治愈:" + str(ii["curedCount"]))print()except Exception as e:print(e)print("没有相应的城市信息!")display_citys(json_content, "河北省")
运行效果图:
可以对比下数据是一致的
喜欢的点个赞❤吧!
每日一练:Python爬虫爬取全国新冠肺炎疫情数据实例详解,使用beautifulsoup4库实现相关推荐
- python爬虫爬取腾讯网站——实时疫情数据并生成Excel表格
一.基本介绍: 开发背景:自从2020年新冠疫情发生后,至今为止的相关疫情数据新闻已经是非常的巨大了,我们无时不在在用数据尝试帮助我们解剖全球的疫情状况.由此可见,新冠疫情数据的新闻报道数量与国内疫情 ...
- 爬取并处理中国新冠肺炎疫情数据
项目名称: 爬取并处理中国新冠肺炎疫情数据 目的: 通过Python爬取中国新冠肺炎疫情数据,存入Excel,对此数据分析并进行可视化,制作查询中国疫情情况的GUI界面. 具体内容: 通过Python ...
- 【Python】2020年美国新冠肺炎疫情数据分析
2020年美国新冠肺炎疫情数据分析 一. 需求描述 二. 环境介绍 三. 数据来源描述 四. 数据上传及上传结果查看 五.数据处理过程描述 1.数据集下载 2.格式转换 3.启动Hadoop集群 4. ...
- 新冠肺炎疫情数据爬取以及几种简单的地图可视化方法
众所周知,新冠肺炎疫情是一次很流行的全球性公共卫生事件.如今我国疫情已经好了许多,但世界各国的疫情依然严峻.特殊时期,正好尝试一下疫情网络数据的抓取,并用几种python库对数据进行简单的地图可视化( ...
- Python爬虫-爬取全国各地市的邮编链接
最近练习爬虫,爬取全国各地市的邮编链接,与大家分享,希望起到抛砖引玉的作用. 源代码如下: import requests from lxml import etree headers = {&quo ...
- (6)Python爬虫——爬取中新网新闻
工欲善其事,必先利其器.我们要进行数据挖掘,就必须先获取数据,获取数据的方法有很多种,其中一种就是爬虫.下面我们利用Python2.7,写一个爬虫,专门爬取中新网http://www.chinanew ...
- 如何用Python自动爬取全国30+城市地铁图数据?
阅读本文大概需要 3 分钟. 最近两天工作之余,开始涉猎python,自动爬取了全国30+城市地铁图数据,这里分享下整个爬虫过程 1. 数据来源 首先分析全国各个城市地铁图的数据来源,无非就是百度或者 ...
- python爬虫爬取使用Ajax请求的网站数据解析——以梅老板微博为例(m.weibo.cn)
文章目录 前言 什么是Ajax Ajax基本原理 发送请求 解析内容 渲染网页 Ajax分析方法 查看请求 过滤请求 Ajax结果提取 1.分析请求(since_id解析) 2.分析响应 3.爬取微博 ...
- python爬取率_[新手]python爬虫爬取中证指数官网数据
想用python爬虫获取中证指数官网上的几个主要指数的每日估值更新,但是下载下来的页面内容却没有想要的数据.想要的数据前面有个JavaScript标签,是不是光靠python没办法获取这个数据?求大神 ...
最新文章
- fuel6.0安装部署
- [译]BEAST还是一个威胁吗?
- simpack导入实际线路激励
- [GKCTF 2021]Random
- 生产力提升! 自己动手自定义Visual Studio 2019的 类创建模板,制作简易版Vsix安装包
- 古玩新仿品收藏若干年后有价值吗?
- sql高级语法之窗口函数调用
- iOS6中旋转的略微改变
- 最长XXX子序列(什么都好啦)
- java如何连接Oracle数据库问题
- Thinpad X1 2017款制作Win10启动盘
- android 点餐系统 构思
- 微信html页面缓存问题,浅谈微信页面入口文件被缓存解决方案
- 洛谷P1563 玩具谜题
- 关于微信小程序中的取整
- Elasticsearch 原理,安装,生产配置以及常见CRUD,ILM管理,常见API解析,go-elasticsearch-client使用
- 软件测试之 对朋友圈点赞功能进行测试
- php 打开ppt,怎么播放ppt
- Linux重启后硬盘挂载失效问题解决
- 写给成为高手之路上的朋友们