2025年485报文格式(485报文怎么抓取)

485报文格式(485报文怎么抓取)前期准备工作 需要了解基本的 python 语法知识 可以参考我的另一篇文章 对 python 基础知识的总结 或者参考缪雪峰老师的 python 课程 是免费的 我们先来了解一下爬虫 网络爬虫与浏览器的区别 浏览器是展示数据的 而网络爬虫是采集数据的 什么是网络爬虫 模拟客户端发送网络请求 获取响应数据 一种按照一定的规则 自动地抓取万维网信息的程序和脚本 网络爬虫的作用

大家好,我是讯享网,很高兴认识大家。



前期准备工作

需要了解基本的python语法知识,可以参考我的另一篇文章,对python基础知识的总结,或者参考缪雪峰老师的python课程,是免费的。

我们先来了解一下爬虫

网络爬虫与浏览器的区别

浏览器是展示数据的,而网络爬虫是采集数据的

什么是网络爬虫

模拟客户端发送网络请求,获取响应数据,一种按照一定的规则,自动地抓取万维网信息的程序和脚本

网络爬虫的作用

从互联网上采集我们所需要的数据

本程序需要使用到的几个库:

1.Requests请求库

作用:Python HTTP请求库,发送请求,获取响应数据

  1. 导入模块
  2. 发送get请求,获取响应
  3. 从响应中获取数据

text 获取响应的字符串

encoding 二进制转换成字符时使用的方式

content  响应体bytes类型数据

安装:pip install requests

简单示例

2.模块lxml

作用:实现解析HTML、XML文档

数据提取:在发送请求获取响应后,可能存在多种不同类型的响应内容,我们只需要有用的部分

lxml是一款高性能的python HTML、XML解析器

XPath是一门在HTML、XML文档中查找信息的语言,可用在HTML、XML对元素和属性进行遍历

常用的几种使用方式

/从根节点选取

//从匹配选择的当前节点选择文档中的节点,而不考虑他们的位置

.选取当前节点


讯享网

@选取属性

text()选择文本

匹配任何元素节点

安装:pip install lxml

例如

//script[@lang=”eng”] 选取所有tltle元素,且这些元素拥有值为eng的lang属性

简单示例

3.openpyxl库:实现Excel文件操作

安装:pip install openpyxl

创建表的简单示例

读取表的简单示例

4.wordcloud: 实现词云图生成

安装:pip install wordcloud

简单示例

下面进入正题

程序实现的思路

第一步:导入需要使用的模块

第二步:使用requests库发送请求,获取数据

第三步:获取数据内容,这里需要使用lxml模块,调用etree.HTML创建一个html对象,再使用xpath语法获取我们需要的数据。

通过浏览器自带的网站开发工具我们得知,所需要的数据都放在id=captain-config的script标签下,因为利用etree.HTML将字符串转化为Element对象,其具有xpath方法,返回的结果列表能够接收bytes类型的数据和str类型的数据。由此我们可以使用  html.xpath(‘//[@id=“captain-config”]/text()’)来获取id=captain-config标签下的text形式的数据。

第四步:由于第三步获取的数据并不是真正的“字典数据”,而是json类型的字符串数据,所以在此我们需要用到python自带的json模块,调用json.loads,把数据转化为python类型数据

这里需要说明:在我们使用 json.loads(result[0])获取的数据才转化为python的字典类型,之前是json类型的字符串,是使用的双引号,现在是单引号。使用[0]是因为,result是一个大的字典,我们需要的数据在第一个字典的元素里。

第五步:通过以获取到的数据,进一步通过网站的标签,获取到全球各国的疫情数据

python 485 采集数据_爬虫

经过研究和测试,能够推断出我们需要的全球疫情数据在键为component中,由上图知道component对应的值又是一个字典,取完component后,又是一个列表,我们需要再取第0个元素,由已知条件,我们能够推断出,键为caseOutsideList是全球各国疫情数据,键:globalList为各大洲的疫情数据

通过for循环,即可获取到各国数据,和各大洲疫情数据

第六步:调用openpyxl库,创建Excel表格,通过对第五步以获取到的全球疫情数据,以及各大洲疫情数据,进行遍历写进两个Excel表格

这里需要提醒的是,我们不是所有的数据都需要,而是截取了”国家”,“累计确诊”,“死亡”,“治愈”,“现有确诊”,“累计确诊增量”,“死亡增量”,“治愈的增量”,“现有确诊增量” 即对应的

‘area’、’confirmed’、’died’、’crued’、’curConfirm’、’confirmedRelative’、’diedRelative’、’curedRelative’、’curConfirmRelative’

“洲名”,“现有确诊”,“累计确诊”,“累计治愈”,“累计死亡”,“累计确诊增量”即对应的

‘area’、’confirmed’、’died’、’crued’、’curConfirm’、’confirmedRelative’、’diedRelative’、’curedRelative’、’curConfirmRelative’

通过遍历以获取的数据,组成一个新的列表。还通过for循环来判断数据是否为空,为空就补0

调用tqdm是为了添加进度条,使得程序运行过程更加直观,记得在最前面添加tqdm库

第七步:保存文件

第八步:通过调用openpyxl库读取,第七步保存的文件,获取疫情数据。同时,调用wordcloud库,在此,我们需要先创建一个空的字典,我们需要用wc.generate_from_frequencies()此方法(只需要传入一个字典{词:词频})它将会根据词频来自动生成图片,我们需要通过循环遍历文件,只需要获取{国家名称:累计确诊人数},{国家名称:累计死亡人数},{国家名称:现有确诊人数},{国家名称:累计治愈人数}传入到字典,再通过上述方法,完成创建出需要的词云图。

到此,通过python爬取疫情数据(全球疫情)的全过程就是这么多啦,爬取国内疫情数据,原理差不多。

项目效果

获取疫情数据

python 485 采集数据_数据_02

 

以下是获取到的疫情数据Excel表格

python 485 采集数据_开发语言_03

python 485 采集数据_python 485 采集数据_04

 

通过Excel生成词云图

 生成词云图

python 485 采集数据_python 485 采集数据_05

 

显示云词图效果

python 485 采集数据_python 485 采集数据_06

 

才疏学浅,有写错的地方忘大佬多多指教

小讯
上一篇 2025-06-14 14:28
下一篇 2025-04-28 15:06

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/186021.html