当前位置: 首页 > news >正文

如何用Python统计CSDN质量分

文章目录

    • CSDN质量分查询
    • selenium
    • 爬取博客地址
    • 单篇测试
    • 批量查询
    • 分析

CSDN质量分查询

CSDN对博客有一套分数评价标准,其查询入口在这里:质量分查询,效果大致如下

在这里插入图片描述
如果质量分太低,就会在博文的标题下面出现黄底黄字:在这里插入图片描述
这个提示其实已经很客气了,我记得去年刚上线的时候写的是低质量博客,总之很有攻击性。

但是,这个评分标准毕竟不是一早就有的,所以早些年间写的博客不可能完全符合现在的CSDN的要求,为了找到需要改进质量的博客,可以通过爬虫的方式,逐一对博客质量进行检测。

selenium

考虑到查询需要有一个交互过程,所以这里采用selenium作为爬虫工具。如果没装的话,需要安装一下

pip install selenium

然后需要下载webdriver,各浏览器下载地址如下

EdgeChromeFirefoxIEx
WebdrivergeckodriverchromedriverIEDriverServer

下载之后解压,并将解压地址添加到环境变量,就可以顺利调用了。

爬取博客地址

首先第一步是获取所有需要查询的博客的地址,这一步并不需要用到selenium,urllib可以轻松搞定,这一步如果有疑问可以参考这篇:用Python标准库统计CSDN阅读量

import urllib.request as ur
import re
article = r'details/[0-9]*'
blogId = []
for i in range(1, 25):print(i)url = f'https://tinycool.blog.csdn.net/article/list/{i}'res = ur.urlopen(url)text = res.read().decode('utf-8')details = re.findall(article, text)blogId += [int(d.split('/')[-1]) for d in details]if len(details)==61:breakblogId = list(set(blogId))

网址https://tinycool.blog.csdn.net/article/list/是个人主页,好处是可以指定页码。但网页中除了博客栏之外,其他地方也会出现博客地址,从而导致最终得到的网址会重复,故而最后通过set去重。

单篇测试

在批量查询之前,先来测试一下单篇博客查询是否可行

from selenium import webdriver
from selenium.webdriver.common.by import Byinput_xpath = '/html/body/div[2]/div/div/div/div/div/div/div[1]/div/div/div[2]/div[1]/div[1]/input'
btn_xpath = '/html/body/div[2]/div/div/div/div/div/div/div[1]/div/div/div[2]/div[2]'
code_xpath = '/html/body/div[2]/div/div/div/div/div/div/div[1]/div/div[2]/p[1]'url = 'https://tinycool.blog.csdn.net/article/details/111595416'driver = webdriver.Edge()
driver.get("https://www.csdn.net/qc?utm_source=1966961068")
driver.find_element(By.XPATH, input_xpath).send_keys(url)
driver.find_element(By.XPATH, btn_xpath).click()
code = driver.find_element(By.XPATH, code_xpath).text
# 得到code=99

批量查询

单篇博客查询没问题,那么批量无非是外面套一个循环而已

import time
blogCode = []
def getOneCode(path):driver.find_element(By.XPATH, input_xpath).clear()driver.find_element(By.XPATH, input_xpath).send_keys(path)driver.find_element(By.XPATH, btn_xpath).click()time.sleep(0.5)		# 给一个延时,否则点击未必会响应code = driver.find_element(By.XPATH, code_xpath).textreturn int(code)for id in blogId:path = f"https://tinycool.blog.csdn.net/article/details/{id}"try:blogCode.append([id, getOneCode(path)])except:blogCode.append([id, -1])    print(blogCode[-1])

效果如下

在这里插入图片描述

分析

没统计之前其实没意识到,统计之后发现一共有14篇博客得到了99分,超过60分的博客数目分别如下

在这里插入图片描述

c99 = [bc for bc in blogCode if bc[1] == 99]
print(len(c99))
# 14
from pprint import pprint
## 下面是99分的博客id
[[103475445, 99],[103465319, 99],[100534775, 99],[103439486, 99],[103398694, 99],[103769447, 99],[103519671, 99],[103669180, 99],[103568966, 99],[103964310, 99],[100175523, 99],[97750903, 99],[111595416, 99],[103847843, 99]]
  • Julia数值微积分
  • Julia实现数值代数中的经典算法
  • F#语言快速教程
  • C语言实现八种排序算法
  • Julia实现经典的插值算法
  • C++面向对象入门这一篇就够了
  • C语言实现链表、堆栈和队列
  • C语言实现高级数据结构之B树
  • 确定不收藏一下吗?你想要的语言环境这里都有
  • Clojure极简教程
  • python实现光线追迹(中):空间关系
  • 用C语言写一个计算器
  • go语言实现图的广度优先与深度优先搜索

相关文章:

如何用Python统计CSDN质量分

文章目录 CSDN质量分查询selenium爬取博客地址单篇测试批量查询分析 CSDN质量分查询 CSDN对博客有一套分数评价标准,其查询入口在这里:质量分查询,效果大致如下 如果质量分太低,就会在博文的标题下面出现黄底黄字: 这…...

gin框架内容(三)--中间件

gin框架内容(三)--中间件 Gin框架允许开发者在处理请求的过程中,加入用户自己的函数。这个函数就叫中间件,中间件适合处理一些公共的业务逻辑,比如登录认证、权限校验、数据分页、记录日志、耗时统计等 即比如&#x…...

如何在工作中利用Prompt高效使用ChatGPT

导读 AI 不是来替代你的,是来帮助你更好工作。用better prompt使用chatgpt,替换搜索引擎,让你了解如何在工作中利用Prompt高效使用ChatGPT。 01背景 现在 GPT 已经开启了人工智能狂潮,不过是IT圈,还是金融圈。 一开…...

uniapp-小程序button分享传参,当好友通过分享点开该页面时,进行一些判断……

一、需求描述: 该小程序中,点击圈子列表页面—>进入圈子详情页面,在圈子详情页面点击button分享按钮后,发送给好友。当好友通过分享点开该页面时: 1.先判断是否登录,如果没有,先去登录&#…...

Ceph部署方法介绍

Ceph部署方法介绍 Installing Ceph — Ceph Documentation Ceph环境规划 admin是一个部署节点...

GoogleLeNet V2 V3 —— Batch Normalization

文章目录 Batch Normalizationinternal covariate shift激活层的作用BN执行的位置数据白化网络中的BN层训练过程 BN的实验效果MNIST与GoogleLeNet V1比较 GoogleLeNet出来之后,Google在这个基础上又演进了几个版本,一般来说是说有4个版本,之前…...

Mac 系统钥匙串证书不受信任

Mac 系统钥匙串证书不受信任 解决办法 通过尝试安装 Apple PKI 的 Worldwide Developer Relations - G4 (Expiring 12/10/2030 00:00:00 UTC) 解决该异常问题 以上便是此次分享的全部内容,希望能对大家有所帮助!...

一个企业级的文件上传组件应该是什么样的

目录 1.最简单的文件上传 2.拖拽粘贴样式优化 3.断点续传秒传进度条 文件切片 计算hash 断点续传秒传(前端) 断点续传秒传(后端) 进度条 4.抽样hash和webWorker 抽样hash(md5) webWorker 时间切片 5.文件类型判断 通过文件头判断文件类型 6.异步并发数控制(重要…...

安全渗透重点内容

this是js中的一个关键字,在不同的场合使用,this的值会发生变化,下面我将详细的介绍this在函数中的各种指向。 在方法中,this表示该方法所属的对象。 如果单独使用,this表示全局对象。 在函数中,this表示全…...

【触觉智能Purple Pi OH开发板体验】开箱体验:开源主板Purple Pi RK3566 上手指北

前言 前段时间收到来自【电子发烧友】的一款开发板,名叫:PurplePi,216G售价仅249元。它使用的芯片是rk3566,适配的OpenHarmony版本为3.2 Release 是目前最便宜的OpenHarmony标准系统开源开发板,并且软硬件全部开源&am…...

flink1.16使用消费/生产kafka之DataStream

flink高级版本后&#xff0c;消费kafka数据一种是Datastream 一种之tableApi。 上官网 Kafka | Apache Flink Kafka Source 引入依赖 flink和kafka的连接器&#xff0c;里面内置了kafka-client <dependency><groupId>org.apache.flink</groupId><arti…...

【多任务编程-线程通信】

进程/线程通信的方式 某些应用程序中&#xff0c;进程/进程和线程/线程之间不可避免的进行通信&#xff0c;进行消息传递&#xff0c;数据共享等 同一进程的线程之间通信方式包括Windows中常用Event, Message等。 不同进程之间的通信可以利用Event, FileMapping(内存共享), W…...

K8S暴露pod内多个端口

K8S暴露pod内多个端口 一、背景 公司统一用的某个底包跑jar服务&#xff0c;只暴露了8080端口 二、需求 由于有些服务在启动jar服务后&#xff0c;会启动多个端口&#xff0c;除了8080端口&#xff0c;还有别的端口需要暴露&#xff0c;我这里就还需要暴露9999端口。 注&a…...

Python 列表

""" #list函数 ls list() #创建一个空列表 print(list()) print(list(str(1234)))#[1, 2, 3, 4] print(list(range(5)))#[0, 1, 2, 3, 4] print(list((1,2,3,4)))#[1, 2, 3, 4] print(list(Lift is short, you need python))#注意空格也算一个字符 #[L, i, f,…...

Rabbitmq的安装与使用(Linux版)

目录 Rabbitmq安装 1.在Ubuntu上安装RabbitMQ&#xff1a; 打开终端&#xff0c;运行以下命令以更新软件包列表&#xff1a; 安装RabbitMQ&#xff1a; 安装完成后&#xff0c;RabbitMQ服务会自动启动。你可以使用以下命令来检查RabbitMQ服务状态&#xff1a; 2.在CentOS…...

Kubernetes对象深入学习之四:对象属性编码实战

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码)&#xff1a;https://github.com/zq2599/blog_demos 本篇概览 本文是《Kubernetes对象深入学习》系列的第四篇&#xff0c;前面咱们读源码和文档&#xff0c;从理论上学习了kubernetes的对象相关的知识&#xff…...

深度学习入门教程(2):使用预训练模型来文字生成图片TextToImageGenerationWithNetwork

本深度学习入门教程是在polyu HPCStudio 启发以及资源支持下进行的&#xff0c;在此也感谢polyu以及提供支持的老师。 本文内容&#xff1a;在GoogleColab平台上使用预训练模型来文字生成图片Text To Image Generation With Network &#xff08;1&#xff09;你会学到什么&a…...

ORA-38760: This database instance failed to turn on flashback database

早晨接一个任务&#xff0c;使用rman备份在虚拟化单机上恢复实例&#xff0c;恢复参数文件、控制文件和数据文件都正常&#xff0c;recover归档时报错如下&#xff1a; Starting recover at 2023-07-28 10:25:01 using channel ORA_DISK_1 starting media recovery media reco…...

避免低级错误:深入解析Java的ConcurrentModificationException异常

在软件开发中&#xff0c;我们常常会遇到各种错误和异常。其中有一类比较低级但又常见的错误就是ConcurrentModificationException异常。最近了我就写了个这种异常&#xff0c;这个异常通常发生在使用迭代器遍历集合时&#xff0c;同时对集合进行修改&#xff0c;从而导致迭代器…...

7.28

1.思维导图 2.qt的sever #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include<QTcpServer> //服务器类 #include<QTcpSocket> //客户端类 #include<QMessageBox> //对话框类 #include<QList> …...

PaddleX印章识别实战:5分钟搞定Seal-Recognition模型部署(附避坑指南)

PaddleX印章识别实战&#xff1a;从零部署到高效应用的完整指南 印章识别在合同审核、公文归档等场景中需求旺盛&#xff0c;但传统方案往往面临部署复杂、适配困难等问题。PaddleX推出的Seal-Recognition模型通过预训练产线低代码API的方式&#xff0c;让中小团队也能快速获得…...

解决tiktoken离线使用难题:手动下载cl100k_base.tiktoken并配置本地缓存的保姆级教程

突破网络限制&#xff1a;tiktoken离线部署全流程实战指南 在自然语言处理领域&#xff0c;token切分是模型处理文本的第一步关键操作。对于依赖GPT系列模型的开发者而言&#xff0c;tiktoken作为OpenAI官方推出的高效tokenizer&#xff0c;其重要性不言而喻。然而&#xff0c;…...

3大核心策略:构建高效抖音内容采集系统的技术实践

3大核心策略&#xff1a;构建高效抖音内容采集系统的技术实践 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. …...

PyTorch 2.8镜像工业设计:CAD图纸→AI生成产品渲染视频→营销素材输出

PyTorch 2.8镜像工业设计&#xff1a;CAD图纸→AI生成产品渲染视频→营销素材输出 1. 工业设计新范式&#xff1a;从CAD到营销视频的全流程AI化 传统工业设计流程中&#xff0c;从CAD图纸到产品营销素材的转化往往需要耗费大量时间和人力成本。设计师需要先完成3D建模&#x…...

基于Phi-4-mini-reasoning的智能运维异常检测系统

基于Phi-4-mini-reasoning的智能运维异常检测系统 1. 运维监控的痛点与智能化需求 运维团队每天都要面对海量的日志数据、监控指标和系统告警。传统监控系统往往只能做到简单的阈值告警&#xff0c;当系统出现异常时&#xff0c;运维人员需要手动翻阅成千上万条日志&#xff…...

通义千问3-VL-Reranker-8B保姆级部署教程:5分钟搞定Nginx反向代理与HTTPS配置

通义千问3-VL-Reranker-8B保姆级部署教程&#xff1a;5分钟搞定Nginx反向代理与HTTPS配置 1. 为什么需要反向代理与HTTPS 当你成功在本地运行通义千问3-VL-Reranker-8B服务后&#xff0c;默认只能通过 http://localhost:7860 访问。这种配置存在三个明显问题&#xff1a; 安…...

离谱了,简历写了这个项目薪资直接涨了 80%!!

报喜了&#xff01;&#xff01;&#xff01;前阵子帮一个粉丝修改简历&#xff0c;只是在项目经历里加了一个“不起眼”的项目&#xff0c;优化了表述逻辑&#xff0c;没想到他面试3家公司&#xff0c;2家给了offer&#xff0c;薪资直接比上一份涨了80%&#xff01;其实很多人…...

PySide6新手必看:从零开始用Python玩转Qt界面开发(附官方教程对比)

PySide6新手必看&#xff1a;从零开始用Python玩转Qt界面开发 在Python生态中&#xff0c;GUI开发一直是个让人又爱又恨的话题。当Tkinter显得过于简陋&#xff0c;而PyQt又面临商业授权困扰时&#xff0c;PySide6作为Qt官方推出的Python绑定&#xff0c;正成为越来越多开发者的…...

突破三维建模效率瓶颈:Blender对齐工具重新定义精准操作流程

突破三维建模效率瓶颈&#xff1a;Blender对齐工具重新定义精准操作流程 【免费下载链接】quicksnap Blender addon to quickly snap objects/vertices/points to object origins/vertices/points 项目地址: https://gitcode.com/gh_mirrors/qu/quicksnap 在复杂的三维建…...

Ostrakon-VL终端入门指南:如何导出结构化JSON结果用于BI工具接入

Ostrakon-VL终端入门指南&#xff1a;如何导出结构化JSON结果用于BI工具接入 1. 认识Ostrakon-VL终端 Ostrakon-VL终端是一款专为零售与餐饮行业设计的智能图像识别工具&#xff0c;它将复杂的AI技术包装成一个充满游戏感的像素风格界面。这个终端基于Ostrakon-VL-8B多模态大…...