柳城企业网站建设公司,中山网站设计服务,国家高新区网站建设,浙江杭州下沙做网站文章目录 一、序二、API分析三、Apipost测试四、脚本五、Apipost中完成 一、序
去年开始再51CTO同步更新文章#xff0c;一年多过去了#xff0c;只涨了3个粉丝。看了下这个平台就是卖课、搞培训的#xff0c;退出了。决定把文章也删除了#xff08;有人私信我说专门注册了… 文章目录 一、序二、API分析三、Apipost测试四、脚本五、Apipost中完成 一、序
去年开始再51CTO同步更新文章一年多过去了只涨了3个粉丝。看了下这个平台就是卖课、搞培训的退出了。决定把文章也删除了有人私信我说专门注册了个账号感谢我的一篇文章还挺有意义的。
不过这和C站一样文章不支持批量操作100多篇文章手动删了几篇后就不想继续了。于是决定写个python脚本联系客服应该也能全部删除吧。 之前写过批量查询CSDN文章质量分的文章本文思路是一样的。
【python】我用python写了一个可以批量查询文章质量分的小项目纯python、flaskhtml、打包成exe文件
二、API分析
在51CTO的创作中心文章列表页面打开浏览器的检查然后删除一篇文章就可以看到删除操作的http请求参数
载荷部分是具体操作delBlog和文章id只需要在http请求的body里面设置要删除的文章的id就可以删除对应的文章了。
下面的list操作就是获取文章列表信息从中提取出文章id就可以了
核心操作就这两个。
三、Apipost测试
还是用Apipost来测试一下吧。
把operation操作的参数填写在Apipost里面就可以了。
请求头
请求体
现在开始测试接口以这篇文章为例
id是7883577。
在请求体中将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。自己先打印responseconsole.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应该有相应的这种高级功能我还没学。 即使不写脚本也比一篇一篇地删除快了。