实时抓取网页数据( 宅家“疫情数据信息实时监控项目”演示如何获取腾讯数据接口的地址)
优采云 发布时间: 2021-10-27 02:16实时抓取网页数据(
宅家“疫情数据信息实时监控项目”演示如何获取腾讯数据接口的地址)
房子很无聊,所以最好学习一些技能!
1.前言
在近期新冠病毒引发的肺炎疫情中,很多人不得不宅在家里。为了让自己不那么无聊,给自己找点事情做,做一个“疫情数据信息实时监测项目”。我去年开始学习 Qt/C++。让我们用这个小项目来练习。代码是开源的。下载地址在文末。当然,如果你和我一样,我建议你用熟悉的编程语言自己实现,也就是学了知识,打发时间。在做之前,我在Github上搜索了一下,看看有没有相关的资料。好像很多人已经在做了:
不过大部分都是基于JavaScript或Python的项目,没有一个是使用Qt/C++平台开发的。
2.主要功能
界面也很简单,主要包括实时数据和历史数据的展示,实时疫情信息的展示,谣言信息的展示。数据来自腾讯新闻。
基于Qt的疫情实时监测平台主界面
一共使用了两个数据接口。一个是收录实时数据、历史数据、疫情动态的界面,一个是收录辟谣信息的界面。
功能也很简单:
3.获取数据接口
现在各大网站都发布了自己的实时疫情展示平台,如定香园、腾讯、新浪、百度、知乎、网易等,包括个别开发者也开发了一些接口、数据均来自国家或地方卫生健康委员会发布的信息。
我使用的是腾讯数据源,数据为JSON格式,解析方便。下面以Chrome浏览器为例,演示如何获取腾讯数据接口的地址。
打开链接后,按F12切换到开发者模式。再次刷新网页,切换到Network,按Ctrl+F搜索当前全国确诊人数:44765,然后回车,可以看到这个数据收录在一个JSON字符串中,这个字符串就是返回的数据某个请求地址,而这个地址就是数据的接口地址。
为了验证这个接口是否正确,我们复制这个地址,然后在地址栏中输入回车,可以看到返回了很多字符串:
这意味着我们找到了正确的地址。完整地址:
在:
时间戳是指格林威治标准时间1970年1月1日00:00:00(北京时间1970年1月1日08:00)到现在的总毫秒数。
因此,如果要获取最新的数据,可以省略以上两个参数:
如果要获取历史数据,只需要修改时间戳即可,其他网站接口地址获取方式类似。
这里我们只使用腾讯新闻的界面。保存 JSON 文件并对其进行格式化。您可以看到收录的信息:
关于腾讯的数据,我还要说一件事。腾讯的JSON数据这几天更新了好几次:
JSON 数据文件的大小也从最初的 80KB 变成了现在的 160KB。
对于辟谣信息,腾讯还放了两个接口,一是查询最新的辟谣信息,二是获取辟谣信息的详细内容。同理,我们可以通过上面获取数据接口地址的方法来获取这两个地址。
查看最新反谣言信息地址:
参数与数据接口相同,函数名和时间戳可以省略:
在这个界面中,有最新的10条辟谣消息。每条辟谣消息包括标题、发布者、发布时间、图片地址、辟谣类型、辟谣id等,通过另一个界面可以查询到某个辟谣新闻的详细信息。
比如这个传闻:
我们访问这样一个地址:
8be33c500e00257c97419ac24ab59d8f
您将获得该谣言新闻的 JSON 格式详细信息如下:
我们实际开发中没有用到这个接口,而是直接调用浏览器打开这个地址的网页地址:
8be33c500e00257c97419ac24ab59d8f
不过这个界面是针对移动端的,在电脑端浏览效果不好:
移动端:
4.Qt 实现
涉及的主要Qt知识如下:
QCustomplot绘图:
驳斥信息显示:
5.主要难点
整个开发过程就是一个解决一个问题的过程。许多控件都是第一次使用。幸运的是,有很多材料。主要困难如下:
历史数据折线图显示:
实时疫情新闻显示:
实时谣言信息显示:
6.包发布
为了让没有安装Qt环境的用户可以使用我们开发的Qt程序,我们需要将生成的程序文件打包发布。首先,使用 Qt 自带的 windeploy filename.exe 命令添加运行该程序所需的所有内容。然后用程序打包软件把这个文件打包成setup.exe安装文件安装在其他电脑上,或者打包成绿色版软件,直接双击运行,我用下面两个软件打包。
7.开源地址
我已经开源了这个项目的Qt项目的所有代码和安装包下载地址,如下: