Apifox「定时任务」进阶指南:监控、爬虫的自动化之旅

定时任务能干啥???

 

它能做的自动化操作实在太多了。先给大家列几个常见的,比如:

  • 社交媒体动态监控:定时跟踪特定用户的动态,监控热门话题和趋势

  • 数据采集与分析:定时爬取网站的文章、评论信息等

  • 自动化营销:定时在社交媒体自动发帖

  • 个人自动化:定时提醒和任务管理

过去要实现这些定时的自动化任务,操作起来还是挺麻烦的。通常需要掌握一门编程语言(如 Python)、配置服务器或云平台,甚至编写复杂的脚本来处理各种情况。这对于非技术人员或时间有限的开发者来说,往往直接劝退。

但是现在,通过 Apifox 的「定时任务」功能,这些自动化场景基本上都能轻松搞定。

在 Apifox 中,要实现爬虫、监控等自动化定时任务,大致可以分为以下几个步骤:

  1. 获取 API

  2. 分析返回数据

  3. 编排测试场景

  4. 设置定时任务

我们下面就根据这几个步骤来讲解一下,怎么在 Apifox 中操作。相信不管你的需求是什么,下面的内容都能给你一些灵感~

 获取 API

想要监控某些平台的社交媒体动态,或者说要爬取某些平台的数据,首先第一步就是要获取到实现这个操作项的 API,那问题来了,这些 API 从哪儿找呢?

可以到官方的「开放平台」找找有没有相关的开放接口,这是最正规的途径,一般能够在前端展示的页面都会提供。

举个例子,假设我们要监控 GitHub 上某个项目的 star 数量变化,我们这时候就可以到 Github 的开放平台看看有没有相关的 API 提供,有的话直接复制下来就行了,如图所示:

图片

请求开放 API 时会要求携带 Token,一般可以在开发者后台生成。

图片

除了到官方平台去查找 API,还可以选择在浏览器抓包,或者在 Github 上找一些开源项目,具体的操作方法可以到本文结尾的扩展小节查看。

 分析返回数据

现在我们知道了怎么获取相关的 API,下一步就是分析返回的数据,看看里面有啥有用的信息。一般来说,这些 API 返回的都是 JSON 格式的数据,我们需要仔细查看每个字段代表什么意思。

比如说,访问下面的这个开放 API 可以获取 Github 上特定开源项目的仓库信息。

curl -L \  -H "Accept: application/vnd.github+json" \  -H "Authorization: Bearer <YOUR-TOKEN>" \  -H "X-GitHub-Api-Version: 2022-11-28" \  https://api.github.com/repos/{owner}/{repo}

其中 {owner} 是仓库所有者的用户名或组织名,{repo} 是仓库的名称。要找到这些信息,只需要看一下 GitHub 仓库的网址就可以了:

  1. 打开你想要查看的 GitHub 项目页面。

  2. 看一下浏览器地址栏中的 URL,它的格式是这样的:https://github.com/{owner}/{repo}

  3. URL 中第一个斜杠后的部分就是 {owner},第二个斜杠后的部分就是 {repo}。

图片

在 Apifox 中,可以直接复制上述的 cURL 命令内容来创建一个新的 API 请求,也可以手动设置请求方法和 URL,同时在请求头中添加 Token。

图片

发送请求后,你会得到类似这样的 JSON 响应:

{  "id": 468576060,  "name": "openai-cookbook",  "full_name": "openai/openai-cookbook",  "stargazers_count": 59366,  ...}

获取到原始的 JSON 数据后,下一步是进行数据处理。在 Apifox 中,我们可以使用 JSONPath 表达式或者写点简单的脚本来实现这一点。

例如,要使用 JSONPath 提取特定字段,可以在「后置操作」中添加一个「提取变量」的操作,并填写相应的表达式。如果不熟悉如何编写表达式,可以点击 「JSONPath 表达式」输入框内的图标,使用 JSONPath 提取工具作为辅助。

图片

提取出来的数据会暂存在环境变量里,可以在后续步骤中将数据发送到服务器或存储到数据库。

除了常见的 JSON 格式外,还有一种是直接返回整个 HTML 文档,这在服务端渲染的场景中很常见。对此,我们需要使用脚本进行处理。

在 Apifox 中,你可以在「后置操作」中新建一个「自定义脚本」,并使用 fox.liveRequire 方法来引用 htmlparser2 库来处理 HTML 格式的数据。

例如,倘若想要将一个 HTML 里的 <article> 标签及其内部所有内容都提取出来,并转换为文本格式,可以这样编写脚本:
 

fox.liveRequire("htmlparser2", (htmlparser2) => {        console.log(htmlparser2)

    // HTML 字符串(一般从接口的返回数据中读取)    const htmlString = `    <html>        <body>        <article>            <h1>Title</h1>            <p>This is a paragraph.</p>            <p>Another piece of text.</p>        </article>        <footer>Footer content</footer>        </body>    </html>    `;
    // 解析文档    const document = htmlparser2.parseDocument(htmlString);
    // 使用 DomUtils 查找 <article> 标签    const article = htmlparser2.DomUtils.findOne(elem => elem.name === "article", document.children);
    // 将 <article> 中的内容转换为完整的 HTML 片段    if (article) {        const articleHTML = htmlparser2.DomUtils.getOuterHTML(article);        console.log(articleHTML);    } else {        console.log("No <article> tag found.");    }})

图片

通过脚本来处理 HTML 格式的内容就不过多探讨了,你可以简单的理解为这是一个「DOM 操作」,具体的可以问一下 AI。

 编排测试场景

有了 API,分析好了数据,接下来就是在自动化测试中编排测试场景了。

在 Apifox 里,你可以在自动化测试中创建一个测试场景,并将准备好的 API 请求导入其中。

图片

如果你需要将处理好的数据插入到数据库,可以在「后置操作」中新建一个「数据库操作」,将处理好的数据通过 SQL 命令插入到数据库中,SQL 命令里支持读取环境变量中的值,例如:

图片

此外,你还可以将处理好的数据通过 API 存储起来,也就是自己编写一个 API 将数据保存至服务器,或者通过 Webhook 将数据发送到一些第三方平台。

比如这里我要将处理好的数据发送到飞书,这时就可以在测试场景中新添加一个测试步骤,并使用飞书提供的 Webhook API 来发送消息。在此过程中,你可以通过「动态值」来读取前置步骤的运行结果,这样处理数据会更加的方便。

图片

如果你需要对一组数据进行遍历,或者让返回的字段满足某些特定条件才继续往下执行,你也可以给测试步骤添加「流程控制条件」。

图片

测试场景编排完成后,可运行测试以查看效果。检查整个测试场景是否存在错误,并确认数据是否成功回传。如果编排的测试场景没问题的话,就可以进入下一步——设置定时任务!

 设置定时任务

在 Apifox 里,设置定时任务超级简单。但是,使用定时任务的前提是你已在服务器中部署了 Runner,具体可以参考这篇文章《Apifox 「定时任务」操作指南,解锁自动化测试的新利器》,该指南详细介绍了 Runner 的安装和配置过程。

假设你已经把 Runner 给部署好了,接下来就可以为之前编排的测试场景添加定时任务,使其定时执行,以实现自动化监控。

在 Apifox 的自动化测试中,找到「定时任务」模块,然后新建一个定时任务。在配置界面,你将看到以下选项:

  • 任务名称:为任务起一个描述性的名字,例如“每日 GitHub Star 数监控”;

  • 测试场景:选择需定期运行的测试场景,如定时监控或爬虫测试场景;

  • 设置运行周期:例如,每天下午 6:00 运行一次;

  • 执行环境:选择已部署的 Runner 服务;

  • 通知设置:指定任务完成后的通知方式,可以是邮件、钉钉等。

图片

设置并保存后,这个定时任务下的测试场景就会按照设置的运行周期定时运行了,我们实现自动化定时监控的目的也已经达到。

图片

 其他扩展

在上文「获取 API」这一小节,除了可以到官方开放平台查找 API,还可以直接在浏览器抓包。

举个例子。

假设我们要监控微博热搜,我们可以在浏览器里打开微博热搜页面,然后按 F12 或 ctrl + shift + i 打开开发者工具,切换到 Network 标签。刷新页面,你就能看到一堆请求。找到获取热搜数据的那个请求,右键复制为 cURL。然后呢,打开 Apifox,新建一个接口,把刚才复制的 cURL 粘贴到输入框。Apifox 自动就帮我们解析好了,超级方便!

图片

除了抓包外,一些第三方开发者可能已经逆向工程了某些服务的 API,你可以在 Github 上搜搜,有需要的话直接拿来用就行。

以上就是本文的内容,希望能给你一些启发,以用 Apifox 的定时任务功能实现一些有趣的自动化操作。

更多详细的功能介绍请参考帮助文档的 API 版本模块进行查看,如果有任何问题或建议,欢迎在评论区留言讨论。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/900273.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

机器学习学习笔记-20241018

继续跟着小土堆去学习机器学习 文章目录 Flatten1. Flatten 的作用2. 何时使用 Flatten3. PyTorch 中的 Flatten Sequentia优化器模型的保存与加载模型的完整训练 Flatten 在神经网络中&#xff0c;Flatten 操作是将高维的输入&#xff08;如二维图像或三维特征图&#xff09…

ArcGIS 10.8 安装教程

目录 一、ArcGIS10.8二、安装链接三、安装教程四、ArcGIS实战 &#xff08;一&#xff09;ArcGIS10.8 1. 概述 ArcGIS 10.8是由美国Esri公司开发的GIS平台&#xff0c;用于处理、分析、显示和管理地理数据&#xff0c;并实现数据共享。它具有新特性和功能&#xff0c;性能更…

C++ 设计模式 - 每日持续更新中

设计模式的核心 - 隔离程序的变化点和稳定点 零&#xff1a;面向对象设计八大原则 ①&#xff1a;依赖倒置(Dependency Inversion Principle) 高层模块不应依赖于低层模块&#xff0c;二者都应依赖于抽象&#xff1a;这意味着程序的高层逻辑不应该直接依赖于具体实现&#xf…

探索 SVG 创作新维度:svgwrite 库揭秘

文章目录 **探索 SVG 创作新维度&#xff1a;svgwrite 库揭秘**背景介绍库简介安装指南基础函数使用实战场景常见问题与解决方案总结 探索 SVG 创作新维度&#xff1a;svgwrite 库揭秘 背景介绍 在数字艺术和网页设计领域&#xff0c;SVG&#xff08;Scalable Vector Graphic…

QT:MaintenanceTool 模块安装工具

QT的MaintenanceTool 工具对已安装的 Qt 进行卸载、修复等其他操作时提示At least one valid and enabled repository required for this action to succeed 解决方式&#xff1a;在设置中添加一个临时的仓库 https://mirrors.tuna.tsinghua.edu.cn/qt/online/qtsdkrepositor…

Serv00 免费虚拟主机 零成本搭建 PHP / Node.js 网站

本文首发于只抄博客&#xff0c;欢迎点击原文链接了解更多内容。 前言 Serv00 是一个提供免费虚拟主机的平台&#xff0c;包含了 3GB 的存储空间和 512MB 的内存空间&#xff0c;足够我们搭建一个 1IP 的小网站了。同时他还不限制每月的流量&#xff0c;并提供了 16 个数据库&…

【深度学习代码调试5】标准化数据集:TensorFlow Datasets (TFDS)自动化数据加载与预处理

【标准化数据集】TensorFlow Datasets、TFDS&#xff1a;自动化数据加载与预处理 写在最前面1. 什么是 TensorFlow Datasets (TFDS)?主要特点&#xff1a; 2. TFDS 的核心 API&#xff1a;tfds.builder 和 download_and_preparetfds.builder&#xff1a;创建数据集构建器示例&…

FPGA实现PCIE视频采集转USB3.0输出,基于XDMA+FT601架构,提供3套工程源码和技术支持

目录 1、前言工程概述免责声明 2、相关方案推荐本博已有的PCIE方案本博已有的USB通信方案 3、PCIE基础知识扫描4、工程详细设计方案工程设计原理框图电脑端视频PCIE视频采集QT上位机XDMA配置及使用XDMA中断模块FDMA图像缓存FT601功能和硬件电路FT601读时序解读FT601写时序解读U…

【源码+文档】基于JavaWeb的村民健康管理平台【提供源码+答辩PPT+参考文档+项目部署】

作者简介&#xff1a;✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流。✌ 主要内容&#xff1a;&#x1f31f;Java项目、Python项目、前端项目、PHP、ASP.NET、人工智能…

未来医疗:大语言模型如何改变临床实践、研究和教育|文献精析·24-10-23

小罗碎碎念 这篇文章探讨了大型语言模型在医学领域的潜在应用和挑战&#xff0c;并讨论了它们在临床实践、医学研究和医学教育中的未来发展。 姓名单位名称&#xff08;中文&#xff09;Jan Clusmann德国德累斯顿工业大学埃尔朗根弗雷斯尼乌斯中心数字化健康研究所Jakob Nikola…

光纤传感器比传统传感器强在哪?——以大坝监测为例

应用介绍 大坝安全监测中心经常对当前工程中的大坝进行检查, 以确保水电站的安全运行。 大坝原有的观测模式是传感器加上人工观测模式&#xff0c;多数传感器经过多年运行后逐渐老化&#xff0c;出现测点损伤&#xff0c;且精度无法与现有光纤传输传感器相比&#xff0c;受现…

Django+Vue全栈开发项目入门(一)

Vue项目搭建过程 1、使用脚手架工具搭建项目 2、准备静态资源 3、调整生成项目结构 使用脚手架工具搭建项目 网络请求库axios Axios是一个基于Promise的HTTP库&#xff0c;适用于浏览器和node.js环境&#xff0c;用于发送网络请求。 特点 跨平台性&#xff1a;Axios既可…

Unity Apple Vision Pro 保姆级开发教程-环境配置、导入 PolySpatial 案例、程序发布到设备

视频教程 Unity 环境配置、导入 PolySpatial 案例、程序发布到设备 Unity Vision Pro 中文课堂教程地址&#xff1a; Unity3D Vision Pro 开发教程【保姆级】 | Unity 中文课堂 教程说明 这期教程我将介绍使用 Unity 开发 Apple Vision Pro 应用所需要的 Unity 环境配置&…

python实现投影仪自动对焦

这是一款投影仪,它带有对焦摄像头 它是如何自动对焦的呢? 我们先看一下对焦算法展示效果 说明:左侧是原视频,右侧是对调焦后的视频帧展示,如果下一帧视频比当前帧清晰就会显示下一帧,否则,还是显示当前帧,直至找到更清晰的帧 原理说明: 在投影仪上对焦摄像头就会实…

CDP和数据仓库怎么选?

一、CDP 是什么&#xff1f; 1.定义&#xff1a; CDP 全称是Customer Data Platform&#xff08;客户数据平台&#xff09;。是一种营销技术工具&#xff0c;它能够将来自不同渠道和系统&#xff08;如网站、移动应用、客户服务系统、营销自动化平台、社交媒体等&#xff09;…

C#PropertyGrid下拉选择数据报错

1、问题点--PropertyGrid下拉框报错 PropertyGrid&#xff1a;属性窗口&#xff1a;滚轮选择或者手动输入不报错&#xff0c;下拉框选择报错 属性值无效&#xff1a;类型“System:String”的对象无法转化为类型“System:Int32” PropertyGrid&#xff1a;属性窗口&#xff1a;…

论文笔记:SIBO: A Simple Booster for Parameter-Efficient Fine-Tuning

ACL 2024 1 intro 基于 Transformer 的大模型一般都有很多层 在广泛采用的 PEFT 技术&#xff08;包括 Adapters 和 LoRA&#xff09;中&#xff0c;尤其是在深层中&#xff0c;也存在过度平滑现象&#xff08;即token之间的相似度很高&#xff09;论文评估了同一语句中 toke…

【Linux学习】(3)Linux的基本指令操作

前言 配置Xshell登录远程服务器Linux的基本指令——man、cp、mv、alias&which、cat&more&less、head&tail、date、cal、find、grep、zip&tar、bc、unameLinux常用热键 一、配置Xshell登录远程服务器 以前我们登录使用指令&#xff1a; ssh 用户名你的公网…

华为云容器引擎(CCE):赋能企业云原生转型

在当今数字化时代&#xff0c;企业面临着日益复杂的应用部署和管理挑战。为了解决这些问题&#xff0c;容器技术应运而生&#xff0c;成为云原生架构的核心。华为云容器引擎&#xff08;CCE&#xff09;作为一款全面的容器管理解决方案&#xff0c;旨在帮助企业实现高效、灵活的…

Redis 安装部署与常用命令

目录 一、关系数据库与非关系型数据库 1.1 关系型数据库 1.2 非关系型数据库 1.3关系型数据库和非关系型数据库区别 &#xff08;1&#xff09;数据存储方式不同 &#xff08;2&#xff09;扩展方式不同 &#xff08;3&#xff09;对事务性的支持不同 1.4 非关系型数据…