【Apipost】批量删除我的51CTO文章

文章目录

  • 一、序
  • 二、API分析
  • 三、Apipost测试
  • 四、脚本
  • 五、Apipost中完成

一、序

去年开始再51CTO同步更新文章,一年多过去了,只涨了3个粉丝。看了下这个平台就是卖课、搞培训的,退出了。决定把文章也删除了(有人私信我说专门注册了个账号感谢我的一篇文章,还挺有意义的)。

不过这和C站一样,文章不支持批量操作,100多篇文章,手动删了几篇后就不想继续了。于是决定写个python脚本(联系客服应该也能全部删除吧)。

在这里插入图片描述

之前写过批量查询CSDN文章质量分的文章,本文思路是一样的。

【python】我用python写了一个可以批量查询文章质量分的小项目(纯python、flask+html、打包成exe文件)

二、API分析

在51CTO的创作中心,文章列表页面,打开浏览器的检查,然后删除一篇文章,就可以看到删除操作的http请求参数:
在这里插入图片描述

载荷部分是具体操作(delBlog)和文章id,只需要在http请求的body里面设置要删除的文章的id,就可以删除对应的文章了。
在这里插入图片描述

下面的list操作,就是获取文章列表信息,从中提取出文章id就可以了:
在这里插入图片描述

核心操作就这两个。

三、Apipost测试

还是用Apipost来测试一下吧。

把operation操作的参数填写在Apipost里面就可以了。

请求头:
在这里插入图片描述

请求体:
在这里插入图片描述

现在开始测试接口,以这篇文章为例:
在这里插入图片描述

id7883577

在请求体中将id设置为7883577。点击发送,可以看到操作成功:
在这里插入图片描述

文章已经被删除:
在这里插入图片描述

批量获取文章id的操作是类似的,不过获取id请求体只需要cookie就可以了(按照前面的全填,永远只返回第一页的信息)

在page这里设置页面即可(和csdn一样,是按page来显示的,不是全部返回):
在这里插入图片描述

四、脚本

参考之前批量查询文章质量分代码。

五、Apipost中完成

直接在Apipost中获取文章id,然后保存下来,再将这些id对应的文章全部删除。

首先是获取文章id并保存,可以使用Apipost的“后执行脚本”功能,即编写脚本(js)对http请求(POST)的响应进行进一步操作。

在这里插入图片描述

脚本:

if (response.rawBody) {try {let responseData = JSON.parse(response.rawBody);let blogIds = responseData.data.list.map(item => item.blog_id);apt.globals.set("blog_ids", blogIds);console.log(blogIds);} catch (error) {console.error("解析JSON时出错: ", error);}
} else {console.error("响应体为空");
}

注意这里是rawBody,而通常的response响应体名称是body。自己先打印response(console.log(response);)就可以看到了。

现在,这些id已经保存到了全局变量blogIds 中了。在删除文章的接口中使用这个全局变量就可以了。

因为每次POST只能删除一篇文章(即一个id),说以需要再删除文章的接口中添加预处理脚本,对前面的全局变量进行设置,每次只取一个。

// 从全局变量中获取 blog_ids 字符串,并将其转换回数组
let blogIds = JSON.parse(apt.globals.get("blog_ids") || "[]");
let blogId = blogIds.shift().toString();  // 将 blog_id 转换为字符串
// 将更新后的数组转换回字符串,并保存到全局变量中
apt.globals.set("blog_ids", JSON.stringify(blogIds));
// 保存 blog_id 到全局变量中
apt.globals.set("blog_id", blogId);

然后再请求中将ids设置为对应的变量:

在这里插入图片描述


现在,点击“发送”,就会删除全局变量中保存的多个文章id对应的文章了。

比如我获取了一页(page)文章对应的id,假设有10个,那么全局变量就会保存这10篇文章的id,然后在删除文件的接口中删除这些id对应的文章。
在这里插入图片描述

不过有一个问题,删除一篇文章就要点击一次“发送”。这种方法还是不如写脚本来得快(循环发送,删除)。Apipost应该有相应的这种高级功能,我还没学。

在这里插入图片描述

即使不写脚本,也比一篇一篇地删除快了。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ToolkenGPT:用大量工具增强LLM

深度学习自然语言处理 原创作者:cola 用外部工具增强大型语言模型(LLM)已经成为解决复杂问题的一种方法。然而,用样例数据对LLM进行微调的传统方法,可能既昂贵又局限于一组预定义的工具。最近的上下文学习范式缓解了这一问题,但有…

Shell 常用命令详解-上

Shell 常用命令详解-上 1.目录查阅相关命令2.文件操作相关命令 1.目录查阅相关命令 ll 命令 命令描述:ll命令用于显示指定工作目录下的内容。 命令格式:ll [参数] [目录名]。 参数说明: 参数说明-a显示所有文件及目录(包括隐藏文…

【机器学习】041_模型开发迭代过程

一、模型开发的一般步骤 1. 明确研究问题 确定问题的组成和结果,明晰问题是分类问题还是回归问题 2. 决定系统总体架构 ①理解数据:采集(爬取)数据,生成(导入)数据,进行数据清洗…

代码随想录二刷 |二叉树 |101. 对称二叉树

代码随想录二刷 |二叉树 |101. 对称二叉树 题目描述解题思路 & 代码实现递归法迭代法使用队列使用栈 题目描述 101.对称二叉树 给你一个二叉树的根节点 root , 检查它是否轴对称。 示例 1: 输入:root [1,2,2,…

zcms企业官网建站系统源码搭建-支持页面自定义

1.支持mysql,sqlite,access三种数据库。 2.模板和标签与asp版的zzzcms通用。 3.asp版的zzzcms的access数据库可直接使用。 4.支持手机站。 (增删改查不做描述): 网站信息 名称,logo,微信&…

基于OpenCV的流水线包装箱检测计数应用(附源码)

导 读 本文主要介绍基于OpenCV的流水线包装箱检测计数应用,并给出源码。 资源下载 完整代码和视频下载地址: https://github.com/freedomwebtech/rpi4-conveyor-belt-boxces-counter 核心代码如下(cboxtest.py): import cv2import numpy as npfrom tracker import*cap=c…

【MYSQL】单表查询

查询语法: select 字段(*表示全字段) from 数据表 【where 条件表达式】 【group by 分组字段【having 分组条件表达式】】 【order by 排序字段【asc | desc】】 例子: 教职工表Teacher(Tno, TName, age, sal, mgr, DNo)&#…

C# 图解教程 第5版 —— 第17章 转换

文章目录 17.1 什么是转换17.2 隐式转换17.3 显示转换和强制转换17.4 转换的类型17.5 数字的转换17.5.1 隐式数字转换17.5.2 溢出检测上下文17.5.3 显示数字转换 17.6 引用转换17.6.1 隐式引用转换17.6.2 显式引用转换17.6.3 有效显式引用转换 17.7 装箱转换17.7.1 装箱是创建副…

MySQL - 聚簇索引和非聚簇索引,回表查询,索引覆盖,索引下推,最左匹配原则

聚簇索引和非聚簇索引 聚簇索引和非聚簇索引是 InnoDB 里面的叫法 一张表它一定有聚簇索引,一张表只有一个聚簇索引在物理上也是连续存储的 它产生的过程如下: 表中有无有主键索引,如果有,则使用主键索引作为聚簇索引;…

【Scala】Scala中的一些基本数据类型的特性 列表、元组、构造器、单例对象、伴生类、伴生对象、抽象类与特质

列表 使用List(“”,“”,“”)去声明 sliding 和 groued表示迭代器 val iter List("Hadoop", "Spark", "Scala") sliding 2// sliding 和 groued 是有区别的while (iter.hasNext){println(iter.next())}for (elem <- iter){println(elem)}…

极速学习SSM之SpringMVC笔记

文章目录 一、SpringMVC简介1、什么是MVC2、什么是SpringMVC3、SpringMVC的特点 二、HelloWorld1、开发环境2、创建maven工程a>添加web模块b>打包方式&#xff1a;warc>引入依赖 3、配置web.xmla>默认配置方式b>扩展配置方式 4、创建请求控制器5、创建springMVC…

Kafka 最佳实践:构建可靠、高性能的分布式消息系统

Apache Kafka 是一个强大的分布式消息系统&#xff0c;被广泛应用于实时数据流处理和事件驱动架构。为了充分发挥 Kafka 的优势&#xff0c;需要遵循一些最佳实践&#xff0c;确保系统在高负载下稳定运行&#xff0c;数据可靠传递。本文将深入探讨 Kafka 的一些最佳实践&#x…

四. 基于环视Camera的BEV感知算法-环视背景介绍

目录 前言0. 简述1. 环视背景介绍2. 环视思路3. 主流基于环视Camera的算法详解总结下载链接参考 前言 自动驾驶之心推出的《国内首个BVE感知全栈系列学习教程》&#xff0c;链接。记录下个人学习笔记&#xff0c;仅供自己参考 本次课程我们来学习下课程第四章——基于环视Camer…

基于Spring+Spring boot的SpringBoot在线电子商城管理系统

SSM毕设分享 基于SpringSpring boot的SpringBoot在线电子商城管理系统 1 项目简介 Hi&#xff0c;各位同学好&#xff0c;这里是郑师兄&#xff01; 今天向大家分享一个毕业设计项目作品【基于SpringSpring boot的SpringBoot在线电子商城管理系统】 师兄根据实现的难度和等级…

高云GW1NSR-4C开发板M3硬核应用

1.M3硬核IP下载&#xff1a;Embedded M3 Hard Core in GW1NS-4C - 科技 - 广东高云半导体科技股份有限公司 (gowinsemi.com.cn) 特别说明&#xff1a;IDE必须是1.9.9及以后版本&#xff0c;1.9.8会导致编译失败&#xff08;1.9.8下1.1.3版本IP核可用&#xff09; 以下根据官方…

vue3中关于echars的使用

今天介绍一个好用的插件echars&#xff0c;一个可视化插件Apache ECharts 一、使用步骤 1、安装 npm install echarts --save 2、导入 import * as echarts from echarts 3、正式使用 echars的使用非常的简单&#xff0c;直接点击官网有现成的代码的可用 代码示例 <t…

微服务——服务保护Sentinel

雪崩问题 在单体项目里面&#xff0c;如果某一个模块出问题会导致整个项目都有问题。 在微服务项目里面&#xff0c;单独一个服务出问题理论上是不会影响别的服务的。 但是如果有别的业务需要调用这一个模块的话还是会有问题。 问题产生原因和解决思路 最初那只是一个小小…

ChatGPT 应用开发(一)ChatGPT OpenAI API 免代理调用方式(通过 Cloudflare 的 AI Gateway)

前言 开发 ChatGPT 应用&#xff0c;我觉得最前置的点就是能使用 ChatGPT API 接口。首先我自己要能成功访问&#xff0c;这没问题&#xff0c;会魔法就可以本地调用。 那用户如何调用到我的应用 API 呢&#xff0c;我的理解是通过用户能访问到的中转服务器向 OpenAI 发起访问…

成都工业学院Web技术基础(WEB)实验四:CSS3布局应用

写在前面 1、基于2022级计算机大类实验指导书 2、代码仅提供参考&#xff0c;前端变化比较大&#xff0c;按照要求&#xff0c;只能做到像&#xff0c;不能做到一模一样 3、图片和文字仅为示例&#xff0c;需要自行替换 4、如果代码不满足你的要求&#xff0c;请寻求其他的…

Echarts 环形图配置 环形半径(radius) 修改文本位置(label) 南丁格尔图(roseType)

数据 const data [{ name: 华为, value: 404 },{ name: 小米, value: 800 }, { name: 红米, value: 540 }, { name: 苹果, value: 157 }]设置南丁格尔图 roseType: area设置标签位置 label: {show: true,position: center // center 中间展示 outside 外侧展示 inside 内侧…