CSND文章质量分批量查询

简介

CSDN 质量分是一项公开的 CSDN 博文内容质量分析服务,其综合分析了内容的标题、段落结构、正文长度、代码格式及复杂度、链接和超文本内容比例及质量等因素,为 IT 技术文章提供客观公共的质量分析结果

用途

  • 可用与对文章质量做评估
  • 可申请创作者 (有对文章质量分的要求)
  • 注意其他不正当用途 需要自行负责

创作者身份认证审核标准
优质创作者申请条件:

粉丝数在5000以上
近30日(申请日算起)原创文章数不少于4篇
原创博文总数不少于100篇
垂直领域原创数量不低于总文章数的60%
垂直领域近2年原创博文质量平均分不得低于80分
新星创作者申请条件:

粉丝数在2000以上
近30日(申请日算起)原创文章数不少于4篇
原创博文总数不少于50篇
垂直领域原创数量不低于总文章数的60%
垂直领域近2年原创博文质量平均分不得低于70分

其他特殊身份认证申请条件(如果博主有以下特殊身份):

拥有个人发明专利
是技术图书作者
全国技术比赛获奖者
大学讲师
特殊身份认证在申请认证的时候可以描述为「《xxx》书籍作者」「xxx专利发明者」等等,只要提交相关证明同时粉丝数在500以上并原创博文数达到50篇即可申请,若文章不存在抄袭的情况可通过审核。

优质创作者和新星创作者只要满足以上条件基本都会通过审核。但是也有特殊的不会通过审核情况,具体如下:

文章质量过低
认证描述不清不楚
文章存在抄袭行为
文章多为毕设相关
若通过认证后被举报抄袭且被证实将取消认证资格
所以在申请的时候也需要查询自己的文章质量分。

质量分查询

文章质量分查询地址: https://www.csdn.net/qc?utm_source=1966961068 点我跳转查询

输入博客地址即可完成查看
在这里插入图片描述

文章平均质量分查询可通过博客主页的「学习成就」进行查询,如下图所示:

在这里插入图片描述
在这里插入图片描述
但是多篇博客,你想知道哪个哪个博客质量分过低 那该怎么办 总不能一个一个查询吧

质量分批量查询

官方只提供了单个博客质量分查询的地址 ,批量查询只能靠我们自己实现了

主要有两步

  • 查询自己所有博客的url
  • 将每个博客url 作为参数 循环调用单个文章质量分查询
  • 汇总结果

查询自己所有博客的url

这里使用手工方式
username 替换为自己的博客地址 分页的size 传入的是500 但是测试下来 分页参数实际上最大只支持100 如果有个超过100篇文章 需要自行替换 分页的页码 参数即 page 第一页传入1 第二页page 传入2 然后将查询的结果保存为json文件 (可使用chrome插件 FeHelper) 依次类推 直到没有文章为止

https://blog.csdn.net/community/home-api/v1/get-business-list?page=1&size=500&businessType=blog&orderby=&noMore=false&year=&month=&username=xxx

例如

在这里插入图片描述

批量查询

  • 文件准备
    将下载好的json文件 放入自己的项目里 (java项目即可)
    在这里插入图片描述

  • 依赖引入 hutool guava (可选) 改造较小 fastjson

    <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>32.1.3-jre</version>
    </dependency><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.25</version>
    </dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.83</version>
    </dependency>
    
  • 批量查询代码

    • 需要修改地方 json文件位置
    • header 参数 需要先访问质量分查询地址 查询文章的质量分 然后抓包获取如下参数 完成参数替换
      headerMap.put("accept","application/json, text/plain, */*");
      headerMap.put("x-ca-key","xxx");
      headerMap.put("x-ca-nonce","83117056-93cc-438d-bc28-12d38664ee15");
      headerMap.put("x-ca-signature","X+sjLooW01anLpAHxL3VJmxRYEEZ8kNJJ/loBABCc=");
      headerMap.put("x-ca-signature-headers","x-ca-key,x-ca-nonce");
      headerMap.put("x-ca-signed-content-type","multipart/form-data");
      headerMap.put("content-type","multipart/form-data; boundary=----WebKitFormBoundary3xxiyRJFc0k4eF4w");
      headerMap.put("cookie","xxx");
      
    • 结果文件写入路径
    • 代码如下
      import cn.hutool.core.collection.CollectionUtil;
      import cn.hutool.http.HttpGlobalConfig;
      import cn.hutool.http.HttpRequest;
      import cn.hutool.http.HttpResponse;
      import com.alibaba.fastjson.JSON;
      import com.alibaba.fastjson.JSONArray;
      import com.alibaba.fastjson.JSONObject;
      import com.alibaba.fastjson.TypeReference;
      import com.google.common.collect.Lists;
      import com.google.common.collect.Maps;
      import lombok.extern.slf4j.Slf4j;
      import org.apache.commons.io.IOUtils;import java.io.*;
      import java.lang.reflect.Type;
      import java.nio.charset.StandardCharsets;
      import java.nio.file.Files;
      import java.nio.file.Paths;
      import java.util.ArrayList;
      import java.util.List;
      import java.util.Map;
      import java.util.stream.Collectors;/*** @author leon* @date 2024/08/29*/
      @Slf4j
      public class Test {public static void main(String[] args) throws IOException {//json 文件所在路径 自行替换json文件的位置List<String> pathList= Lists.newArrayList("file/contents.json","file/contents2.json","file/contents3.json");List<String> urlList = getAllArticleUrl(pathList);if(CollectionUtil.isEmpty(urlList)){log.error("文章url为空");return;}log.info("文章总数: {}",urlList.size());Map<String,String> headerMap = Maps.newHashMap();headerMap.put("accept","application/json, text/plain, */*");headerMap.put("x-ca-key","xxx");headerMap.put("x-ca-nonce","83117056-93cc-438d-bc28-12d38664ee15");headerMap.put("x-ca-signature","X+sjLooW01anLpAHxL3VJmxRYEEZ8kNJJ/loBABCc=");headerMap.put("x-ca-signature-headers","x-ca-key,x-ca-nonce");headerMap.put("x-ca-signed-content-type","multipart/form-data");headerMap.put("content-type","multipart/form-data; boundary=----WebKitFormBoundary3xxiyRJFc0k4eF4w");headerMap.put("cookie","xxx");StringBuilder stringBuilder = new StringBuilder();for (String url: urlList){Map<String,Object> param = Maps.newHashMap();param.put("url",url);try(HttpResponse resp = HttpRequest.post("https://bizapi.csdn.net/trends/api/v1/get-article-score").form(param).timeout(HttpGlobalConfig.getTimeout()).headerMap(headerMap, true).execute()){String body = resp.body();String res = "文章地址: "+url +" 结果: "+body;stringBuilder.append(res).append(System.lineSeparator());}}log.info("======开始写入文件=====");String writeContent = stringBuilder.toString();log.info("writeContent: {}",writeContent);//写到磁盘文件IOUtils.write(writeContent,new BufferedOutputStream(Files.newOutputStream(Paths.get("/Users/leon/Desktop/AllArticleUrl.txt"))),StandardCharsets.UTF_8);}private static List<String> getAllArticleUrl(List<String> pathList) {if(CollectionUtil.isEmpty(pathList)){log.info("文件路径配置为空");return new ArrayList<>();}ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();List<String> allUrlList = new ArrayList<>();for (String path : pathList) {InputStream resourceAsStream = contextClassLoader.getResourceAsStream(path);if(null == resourceAsStream){log.info("文件路径: {} 资源不存在",path);continue;}Type type = new TypeReference<JSONObject>(){}.getType();JSONObject jo = null;try {jo = JSON.parseObject(resourceAsStream, StandardCharsets.UTF_8, type);JSONObject data = jo.getJSONObject("data");JSONArray list = data.getJSONArray("list");List<String> urlList = list.stream().map(obj -> {JSONObject jsonObject = (JSONObject) obj;return jsonObject.getString("url");}).collect(Collectors.toList());allUrlList.addAll(urlList);} catch (IOException e) {log.error("文件路径: {} 资源处理失败 错误信息: {[]}",path,e);}finally {try {resourceAsStream.close();} catch (IOException e) {log.error("文件路径: {} 资源释放失败", path);}}}return allUrlList;}
      }

运行程序即可

在这里插入图片描述

免责声明

本工具仅用于个人学习和研究目的。使用者应该遵守 CSDN 的使用条款和规定。任何使用本工具造成的违规行为和后果,作者概不负责。

请注意,本工具仅提供便利性,不对任何因使用本工具导致的任何问题承担责任。使用本工具即代表您同意自行承担所有风险。


good day !!!

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

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

相关文章

【web网页制作】中国传统文化书法主题html网页制作开发div+css(6页面附效果源码)

HTMLCSS传统文化主题书法网页制作 &#x1f354;涉及知识&#x1f964;写在前面&#x1f367;一、网页主题&#x1f333;二、网页效果菜单切换效果PageA、整体页Page1、主页Page2、行书页Page3、楷书页Page4、隶书页Page5、篆书页Page6、草书页 &#x1f40b;三、网页架构与技术…

Python | Leetcode Python题解之第386题字典序排数

题目&#xff1a; 题解&#xff1a; class Solution:def lexicalOrder(self, n: int) -> List[int]:ans [0] * nnum 1for i in range(n):ans[i] numif num * 10 < n:num * 10else:while num % 10 9 or num 1 > n:num // 10num 1return ans

【电子数据取证】Linux软件包管理器yum和编辑器vim

文章关键词&#xff1a;电子数据取证、手机取证、安卓取证、云取证 在Linux系统中&#xff0c;我们会进行一些软件的安装以及对一些服务或软件的配置&#xff0c;这时就需要用到Linux的yum以及编辑器&#xff0c;下面我们就来看一下这两个功能。 Linux软件包管理器yum 一、什…

模型 错位竞争(战略规划)

系列文章 分享 模型&#xff0c;了解更多&#x1f449; 模型_思维模型目录。与其更好&#xff0c;不如不同。 1 错位竞争的应用 1.1 美团的错位竞争策略 美团&#xff0c;作为中国领先的电子商务平台&#xff0c;面临着阿里巴巴等电商巨头的竞争压力。为了在市场中获得独特的…

Leetcode3243. 新增道路查询后的最短距离 I

Every day a Leetcode 题目来源&#xff1a;3243. 新增道路查询后的最短距离 I 解法1&#xff1a;广度优先搜索 暴力。 每次加边后重新跑一遍 BFS&#xff0c;求出从 0 到 n−1 的最短路。 代码&#xff1a; /** lc appleetcode.cn id3243 langcpp** [3243] 新增道路查询…

URP custompasscustom render objects

https://dbbh666.blog.csdn.net/article/details/141296728?spm1001.2014.3001.5502 上一次 custom render pass的时候&#xff0c;直接是quad的渲染&#xff0c;如果想把任意对象绘制到FBO怎么写呢 参考这两个高手的文章&#xff0c;总结一下 https://www.bilibili.com/read…

前端速通面经八股系列(一)—— CSS篇

CSS高频面经目录 一、CSS基础1. CSS选择器及其优先级2. CSS中可继承与不可继承属性有哪些3. display的属性值及其作用4. display的block、inline和inline-block的区别5. 隐藏元素的方法有哪些6. link和import的区别7. transition和animation的区别8. display:none与visibility:…

win10环境下gvim离线配置插件的一些补充

0 总述 在上一篇博客&#xff0c;即《Windows系统下使用gvim配置LaTeX快速书写环境》一文中&#xff0c;本小白试图模仿神级人物Gilles Castel&#xff0c;打造vim下的 LaTeX \LaTeX LATE​X书写环境。实话实说&#xff0c;东施效颦了。虽不至于一无所得&#xff0c;但也仅仅算…

穿越Java世界的继承奇旅:从基类到子类的华丽蜕变

1.为什么要继承 2.什么是继承以及继承的方式 3.继承的一些语法 4.父类成员的访问 5.关键字super 6.关键字protected 7.关键字final 8.继承与组合 一&#xff1a;为什么要继承 ①代码重用&#xff1a;继承允许我们重用、扩展或修改父类的属性和方法&#xff0c;而无需重…

未使用CMSIS之前的stm32标准库中SystemHandler的宏定义

背景&#xff1a; 在stm32的标准库还叫STM32F10xxx_FWLib_V2.0.3的那个年代 文件 STM32F10xFWLib_V2.0.3/FWLib/library/inc/stm32f10x_nvic.h 中有对System Handlers的定义。具体内容如下&#xff1a; /* System Handlers -------------------------------------------------…

【Altium Designer程序开发】生成XML多级数据库文件 V2.0

此工具用于生成多级多节点的XML数据库文件&#xff0c;主要功能用于测试XML文件的生成速度的&#xff0c;运行环境在Altium Designer中&#xff0c;可用于Altium Designer全系列的版本中。 程序界面如下图所示&#xff0c;每一级节点表示每个父Node的子Node的数量&#xff0c;节…

Java面试题:equals和==的区别与联系分别是什么?

1. 运算符 是一个运算符&#xff0c;其用于比较两个变量的内存地址是否相等&#xff1b;对于基本数据类型(int、char、Boolean等)&#xff0c;比较的是它们的值&#xff1b;而对于引用数据类型的话(String、Object、ArrayList等)&#xff0c;比较的是引用&#xff0c;也就是对…

【函数模板】函数模板的类型推导

一、类型的自动推导 当函数模板的返回值被指定或与传入的参数的类型一致&#xff0c;那么可以直接调用函数模板&#xff0c;而不需要显式的指定参数。 //函数推导 template<typename T, typename R> T Add(T a, R b) {return a b; }void Test1() {//自动推导int x 1;…

Linux下递归设置目标目录及其子目录和文件的权限

〇、背景 本文旨在简单介绍一个在Linux环境下批量修改目录及其子目录和文件的权限的方法。 一、实现 首先新建一个shell脚本文件&#xff0c;使用指令$ vi chmod.sh&#xff0c;然后在文件中输入下述代码。 #!/bin/bashOFFSET_INDEX" " DIR_MODE755 FILE_MODE664…

笔记整理—内核!启动!—uboot部分(1)

常规启动时&#xff0c;各镜像都在SD卡中的各种分区中&#xff0c;内核放在kernel分区&#xff0c;从SD卡到DDR的连接处&#xff08;内核不需要进行重定位&#xff0c;直接从链接处启动&#xff09;。uboot从sd卡分区读使用movi命令。 使用fastboot指令可以查看分区情况&#x…

Datawhale X 李宏毅苹果书 AI夏令营 Task2打卡

线性模型&#xff08;Linear model&#xff09; 通常模型的修改来自于对问题的理解&#xff0c;即领域知识 基本定义&#xff1a;把输入特征x乘上一个权重&#xff0c;再加上一个偏置就可以得到预测的结果。 优点&#xff1a;简单易理解&#xff0c;可理解性好&#xff08;权重…

C++(Qt)-GIS开发-QGraphicsView显示瓦片地图简单示例2

C(Qt)-GIS开发-QGraphicsView显示瓦片地图简单示例2 文章目录 C(Qt)-GIS开发-QGraphicsView显示瓦片地图简单示例21、概述2、实现效果3、主要代码4、源码地址 更多精彩内容&#x1f449;个人内容分类汇总 &#x1f448;&#x1f449;GIS开发 &#x1f448; 1、概述 支持多线程…

AWS-亚马逊网络服务(基础服务)-AWS 定价计算器-概述与动手部署:

让我们来概述并亲身实践如何使用 AWS 定价计算器来计算 概述&#xff1a; AWS 定价计算器是 Amazon Web Services (AWS) 提供的基于 Web 的工具&#xff0c;可帮助用户估算其特定用例的 AWS 服务成本。欢迎来到雲闪世界。 它允许客户建模他们的基础设施并根据他们打算使用的…

大数据智能风控核心:模型

概述 模型 线性判别分析方法&#xff0c;Sir Ronald Fisher最早提出模型评分的概念。 个人FICO模型信用分。 巴塞尔委员会发布巴塞尔Ⅱ协议&#xff0c;推出内部评级法&#xff08;Internal Rating Based Approach&#xff0c;IRB&#xff09;​。IRB综合考虑客户评级和债项…

【STM32】BKP备份寄存器与RTC实时时钟

本篇博客重点在于标准库函数的理解与使用&#xff0c;搭建一个框架便于快速开发 目录 BKP简介 BKP代码注解 读写备份寄存器 复位备份寄存器 BKP代码 RTC简介 RTC代码注解 RTCCLK时钟源选择 分频器配置 时钟同步 RTC代码 MyRTC.h MyRTC.c main.c BKP简介 BKP&…