CSDN文章质量分查询系统【赠python爬虫、提分攻略】

news2025/2/22 11:13:26

CSDN文章质量分查询系统

https://www.csdn.net/qc

点击链接----->   CSDN文章质量分查询系统     <------点击链接

点击链接----->   https://www.csdn.net/qc     <------点击链接

点击链接----->   CSDN文章质量分查询系统     <------点击链接 

点击链接----->   https://www.csdn.net/qc     <------点击链接

说明:一定要是CSDN站内博文链接

效果举例展示

作者以自己这编文章展示效果

java机器学习计算指标动态阈值-CSDN博客

CSDN个人博客平均质量分查询

内容管理---》数据---》作品数据---》博客数据(默认页签)---》博客统计数据(默认页签)

获取CSDN个人博客链接地址

方式一

文章浏览页面---》复制地址栏的地址

方式二

文章浏览页面(底部)---》分享---》复制链接

Python爬虫应用【爬质量分】

Python爬虫爬csdn个人所有文章质量分

这里以MacOS为例,Windows和Linux类似

安装python3

安装过的跳过,如果有python(python2)也行

brew install python3

安装pip3

安装过的跳过,如果有python(python2)也行

brew install pip3

安装所需的库

  • requests:用于发送HTTP请求
  • MultipartEncoder:用于构造POST请求的请求体
# windows或是没有装homebrew的操作系统可以不带--break-system-packages
pip3 install requests --break-system-packages
pip3 install requests_toolbelt --break-system-packages
pip3 install openpyxl --break-system-packages
pip3 install pandas --break-system-packages

获取所需的请求 URL 和请求标头

第一步:打开目标网页

第二步:使用开发者工具

 

第三步:获取请求 URL 和请求标头

点击负载找到请求参数

第四步:分析请求url,构造参数字典

url = "https://bizapi.csdn.net/blog/phoenix/console/v1/article/list"
参数:
pageSize: 20

第五步:整代码

调整下面的代码(不同时候由于csdn官方可能有更新,地址可能会有调整)

编辑文件:csdnArticleScore.py

# pip3 install pandas --break-system-packages
import json
import pandas as pd
from openpyxl import Workbook, load_workbook
from openpyxl.utils.dataframe import dataframe_to_rows
import math
import requests

# 批量获取文章信息并保存到excel
class CSDNArticleExporter:
    def __init__(self, username, cookies, Referer, page, size, filename):
        self.username = username
        self.cookies = cookies
        self.Referer = Referer
        self.size = size
        self.filename = filename
        self.page = page

    def get_articles(self):
        url = "https://blog.csdn.net/community/home-api/v1/get-business-list"
        params = {
            "page": {self.page},
            "size": {self.size},
            "businessType": "blog",
            "username": {self.username}
        }
        headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3',
            'Cookie': self.cookies,  # Setting the cookies string directly in headers
            'Referer': self.Referer
        }

        try:
            response = requests.get(url, params=params, headers=headers)
            response.raise_for_status()  # Raises an HTTPError if the response status code is 4XX or 5XX
            data = response.json()
            return data.get('data', {}).get('list', [])
        except requests.exceptions.HTTPError as e:
            print(f"HTTP错误: {e.response.status_code} {e.response.reason}")
        except requests.exceptions.RequestException as e:
            print(f"请求异常: {e}")
        except json.JSONDecodeError:
            print("解析JSON失败")
        return []
    
    def export_to_excel(self):
        df = pd.DataFrame(self.get_articles())
        df = df[['title', 'url', 'postTime', 'viewCount', 'collectCount', 'diggCount', 'commentCount']]
        df.columns = ['文章标题', 'URL', '发布时间', '阅读量', '收藏量', '点赞量', '评论量']
        # df.to_excel(self.filename)
        # 下面的代码会让excel每列都是合适的列宽,如达到最佳阅读效果
        # 你只用上面的保存也是可以的
        # Create a new workbook and select the active sheet
        wb = Workbook()
        sheet = wb.active
        # Write DataFrame to sheet
        for r in dataframe_to_rows(df, index=False, header=True):
            sheet.append(r)
        # Iterate over the columns and set column width to the max length in each column
        for column in sheet.columns:
            max_length = 0
            column = [cell for cell in column]
            for cell in column:
                try:
                    if len(str(cell.value)) > max_length:
                        max_length = len(cell.value)
                except:
                    pass
            adjusted_width = (max_length + 5)
            sheet.column_dimensions[column[0].column_letter].width = adjusted_width
        # Save the workbook
        wb.save(self.filename)

class ArticleScores:
    def __init__(self, filepath):
        self.filepath = filepath

    @staticmethod
    def get_article_score(article_url):
        url = "https://bizapi.csdn.net/trends/api/v1/get-article-score"
        # TODO: Replace with your actual headers
        headers = {
            "Accept": "application/json, text/plain, */*",
            "X-Ca-Key": "203930474",
            "X-Ca-Nonce": "7e4ece49-5b7d-41e0-b548-30972a3e3989",
            "X-Ca-Signature": "mXV5P9OGdBpKyv7v+OfuSmtbN66OwLg3ujL2kwGk5mw=",
            "X-Ca-Signature-Headers": "x-ca-key,x-ca-nonce",
            "X-Ca-Signed-Content-Type": "multipart/form-data",
        }
        data = {"url": article_url}
        try:
            response = requests.post(url, headers=headers, data=data)
            response.raise_for_status()  # This will raise an error for bad responses
            return response.json().get('data', {}).get('score', 'Score not found')
        except requests.RequestException as e:
            print(f"Request failed: {e}")
            return "Error fetching score"

    def get_scores_from_excel(self):
        df = pd.read_excel(self.filepath)
        urls = df['URL'].tolist()
        scores = [self.get_article_score(url) for url in urls]
        return scores

    def write_scores_to_excel(self):
        df = pd.read_excel(self.filepath)
        df['质量分'] = self.get_scores_from_excel()
        df.to_excel(self.filepath, index=False)

if __name__ == '__main__':
    total = 10     #已发文章总数量
    # TODO:调整为你自己的cookies,Referer,CSDNid, headers
    cookies = 'UN=jjk_02027; fi_id=default; log_Id_pv=******。。。'  # Simplified for brevity
    Referer = 'https://blog.csdn.net/jjk_02027?type=blog'
    CSDNid = 'jjk_02027'
    t_index = math.ceil(total/100)+1 #向上取整,半闭半开区间,开区间+1。
    # 获取文章信息
    # CSDNArticleExporter("待查询用户名", 2(分页数量,按总文章数量/100所得的分页数),总文章数量仅为设置为全部可见的文章总数。
    # 100(最大单次查询文章数量不大于100), 'score1.xlsx'(待保存数据的文件,需要和下面的一致))
    for index in range(1,t_index): #文章总数
        filename = "score"+str(index)+".xlsx"
        exporter = CSDNArticleExporter(CSDNid, cookies, Referer, index, 100, filename)  # Replace with your username
        exporter.export_to_excel()
        # 批量获取质量分
        score = ArticleScores(filename)
        score.write_scores_to_excel()

第六步:运行Python爬虫

python3 csdnArticleScore.py  

第七步:查询质量分文件

运行Python爬虫后会在当前目录生成excel文件:

文件示例:

我从事了10多年的java工作,是个python新手,真正被python的强大惊讶到了,从性能、便捷性方面不输java,虽然我用java也写过,性能也相差无几,但是这里还是觉得python更好用~

附件一:Python官网及教程

Python官网     https://www.python.org/

Python3教程   Python3 教程 | 菜鸟教程

附件二:Python抓分常见问题

1、macOS python3安装requests库 报error: externally-managed-environment

使用Homebrew来安装requests库,而不是直接使用pip(跳过,装python库用pip3,非python库才用brew

brew install python-requests

2、macOS pip3安装pipx报error: externally-managed-environment

pip3 install pipx --break-system-packages

3、macOS pip3安装requests报error: externally-managed-environment

pip3 install requests --break-system-packages

附件三:CSDN提高博客质量分攻略

在提高CSDN博客质量分(即提高博客的排名和曝光度)时,有几个关键的策略可以帮助你优化你的内容,从而吸引更多的读者和搜索引擎的关注。以下是一些实用的建议:

1. 内容质量

  • 原创性:确保你的文章是原创的,避免抄袭。

  • 深度和广度:提供有价值的信息,不仅限于表面,而是深入探讨话题。

  • 准确性:确保所有信息都是准确无误的,避免误导读者。

2. 文章结构

  • 清晰的标题:使用吸引人的标题,同时包含关键词。

  • 良好的段落划分:合理使用标题(H2, H3等),使文章结构清晰。

  • 列表和子标题:使用列表和子标题来增强可读性。

3. 关键词优化

  • 关键词研究:使用工具如Google Keyword Planner或SEMrush来找到相关的关键词。

  • 关键词密度:在文章中合理分布关键词,但避免过度堆砌。

  • 元标签优化:优化文章的元描述和关键词标签。

4. 多媒体内容

  • 图片和视频:合理使用图片和视频,增强内容的吸引力。

  • ALT标签:为图片添加描述性的ALT标签,这有助于SEO。

5. 外部链接

  • 高质量链接:提供有价值的外部链接,增加文章的可信度和深度。

  • 内部链接:链接到你的其他相关博客文章,提高页面浏览量和SEO价值。

6. 社交媒体分享

  • 易于分享:在文章中添加社交分享按钮,鼓励读者分享你的内容。

  • 社交媒体互动:在社交媒体上宣传你的文章,增加曝光率。

7. 定期更新和维护

  • 定期更新:保持博客的活跃状态,定期发布新内容。

  • 评论管理:及时回复评论,与读者互动,建立良好的社区氛围。

8. 使用SEO插件和工具

  • 使用SEO插件:如Yoast SEO(对于WordPress用户),它可以帮助你优化内容。

  • 分析工具:使用Google Analytics和Google Search Console来监控你的博客表现,并根据数据进行调整。

9. 用户体验优化

  • 快速加载速度:优化图片和其他媒体文件的大小,确保网站快速加载。

  • 移动友好性:确保你的博客在移动设备上也能良好显示。

通过实施上述策略,你可以显著提高CSDN博客的质量分,从而增加你的博客的访问量和影响力。记住,持续的努力和改进是关键。

总结 

本文讲述:

1、如何查文章质量分

2、如何获取文章链接

3、使用爬虫一次性爬所有文章质量分

4、附CSDN提高博客质量分攻略

小伙伴们,快快点赞、关注、收藏吧~

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

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

相关文章

GPT-SoVITS更新V3 win整合包

GPT-SoVITS 是由社区开发者联合打造的开源语音生成框架&#xff0c;其创新性地融合了GPT语言模型与SoVITS&#xff08;Singing Voice Inference and Timbre Synthesis&#xff09;语音合成技术&#xff0c;实现了仅需5秒语音样本即可生成高保真目标音色的突破。该项目凭借其开箱…

CSS三大特性——继承、优先级与层叠

1. 层叠性 概念&#xff1a;如果发生了样式冲突&#xff0c;那就会根据一定的规则&#xff08;选择器优先级&#xff09;&#xff0c;进行样式的层叠&#xff08;覆 盖&#xff09;。 什么是样式冲突&#xff1f; ——— 元素的同一个样式名&#xff0c;被设置了不同的值&…

敏捷开发06:用户故事估算方法介绍

估算介绍 在以前开发 IT 软件时&#xff0c;使用较多的衡量软件开发工作量的单位是&#xff1a;小时、人天 或 人月。它是预估开发时间。比如&#xff1a;这个功能张三一个人开发需要 3 天时间完成。 这种 “人天” 估算只是 “理想人天” 的估算&#xff0c;有时与实际开发完…

环境变量与本地变量

目录 本地变量的创建 环境变量VS本地变量 认识完了环境变量我们来认识一下本地变量。 本地变量的创建 我们如果直接env是看不到本地变量的&#xff0c;因为本地变量和环境变量都具有独立性&#xff0c;环境变量是系统提供的具有全局属性的变量&#xff0c;都存在bash进程的…

Visual Studio中打开多个项目

1) 找到解决方案窗口 2) 右键添加→ 选择现有项目 3) 选择.vcxproj文件打开即可

广西壮族自治区园区投促中心党委书记陶德文率团到访深兰科技

2月16日&#xff0c;广西壮族自治区园区投促中心党委书记、主任&#xff0c;自治区园区办党组成员陶德文率团来到深兰科技集团上海总部考察调研&#xff0c;并与深兰科技集团创始人、董事长陈海波等集团管理层座谈交流&#xff0c;双方围绕深兰科技人工智能项目落地广西的相关事…

1005 K 次取反后最大化的数组和(贪心)

文章目录 题目[](https://leetcode.cn/problems/maximize-sum-of-array-after-k-negations/)算法原理源码总结 题目 如上图&#xff0c;k是取反的次数&#xff0c;在数组【4&#xff0c;-1,3】中&#xff0c;当k 1&#xff0c;把-2取反为2&#xff0c;和为9&#xff1b;在数组…

Softing线上研讨会 | 自研还是购买——用于自动化产品的工业以太网

| 线上研讨会时间&#xff1a;2025年1月27日 16:00~16:30 / 23:00~23:30 基于以太网的通信在工业自动化网络中的重要性日益增加。设备制造商正面临着一大挑战——如何快速、有效且经济地将工业以太网协议集成到其产品中。其中的关键问题包括&#xff1a;是否只需集成单一的工…

SpringBoot整合Redis和Redision锁

参考文章 1.Redis 1.导入依赖 <!--Redis依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency><groupId>org.apache.c…

数仓搭建(hive):DM搭建(数据集市层)

DM层 数据集市层 &#xff08;Data Mart&#xff09; 粒度上卷&#xff08;Roll-up&#xff09;: 指的是沿着维度层次向上聚合汇总数据&#xff0c;从细粒度到粗粒度观察数据的操作。 示例 数仓的上一层DWS的是按日汇总 DM层基于DWS层主题日宽表上卷统计出按年,月,周的数…

用 Python 实现 DeepSeek R1 本地化部署

DeepSeek R1 以其出色的表现脱颖而出&#xff0c;不少朋友想将其本地化部署&#xff0c;网上基于 ollama 的部署方式有很多&#xff0c;但今天我要带你领略一种全新的方法 —— 使用 Python 实现 DeepSeek R1 本地化部署&#xff0c;让你轻松掌握&#xff0c;打造属于自己的 AI…

GitHub基本操作及Git简单命令

GitHub简介 GitHub就是一个远程仓库&#xff0c;远程仓库可以理解为就是一个可以保存自己代码的地方&#xff0c;在实际开发当中一个项目往往是有多个人来共同协作开发完成的&#xff0c;那么就需要一个统一代码保存的地方&#xff0c;而GitHub就是起到一个共享和汇总代码的作…

AI工作流+专业知识库+系统API的全流程任务自动化

我有点悲观&#xff0c;甚至很沮丧&#xff0c;因为AI留给普通人的机会不多了&#xff0c;这既是人类之间权力的斗争&#xff0c;也是硅基生命和碳基生命的斗争。AI自动化是无法避免的趋势&#xff0c;如果人类不能平权&#xff0c;那就只能跪下接受审判。 通过整合AI工作流、专…

本地文件共享——HFS

目录 1.介绍&#xff1a; 2.下载&#xff1a; 3.开始使用&#xff1a; 1.介绍&#xff1a; HFS&#xff08;HTTP File Server&#xff09;是一款轻量级的本地文件共享软件&#xff0c;主要用于快速搭建一个基于网页的临时文件服务器&#xff0c;支持通过浏览器直接上传或下载…

第十二届先进制造技术与材料工程国际学术会议 (AMTME 2025)

重要信息 大会官网&#xff1a;www.amtme.org&#xff08;了解会议&#xff0c;投稿等&#xff09; 大会时间&#xff1a;2025年3月21-23日 大会地点&#xff1a;中国-广州 简介 2025年第十二届先进制造技术与材料工程 (AMTME 2025) 定于2025年3月21-23日在中国广州隆重举…

【Alertmanager】alertmanager告警系统原理剖析与应用实战,应有尽有非常全面

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全…

C++之虚函数、虚函数表

C 虚函数、虚函数表详解与实践 C中虚函数是实现多态的重要技术&#xff0c;接下来将从汇编、以及gdb调试运行方面下手全面了解虚函数、虚函数表、以及虚函数调用。 原理初认识 一个由虚函数的类将会有一个虚函数表&#xff0c;且所有该类的实例化对象共享一个虚函数表。虚函…

零基础学QT、C++(一)安装QT

目录 如何快速学习QT、C呢&#xff1f; 一、编译器、项目构建工具 1、编译器&#xff08;介绍2款&#xff09; 2、项目构建工具 二、安装QT 1、下载QT安装包 2、运行安装包 3、运行QT creator 4、导入开源项目 总结 闲谈 如何快速学习QT、C呢&#xff1f; 那就是项目驱动法&…

Python SMTP 实现邮件发送功能

发送邮件的流程 登录我们邮箱&#xff0c; 书写接收者的邮箱&#xff0c; 书写题目与内容&#xff0c;添加附件&#xff0c; 点击发送。 邮件协议 smtp 是邮件发送的协议。pop3 是邮件接收的协议。 smtplib模块用法 创建协议对象&#xff1a;smtpObj smtplib.SMTP() 创建…

低价窜货要如何管控

在竞争激烈的市场环境中&#xff0c;低价与窜货就像一对如影随形的“孪生兄弟”&#xff0c;给品牌的健康发展带来了极大的困扰。低价销售不仅压缩了合理的利润空间&#xff0c;破坏了市场的价格体系&#xff0c;还会引发恶性竞争&#xff0c;让整个市场陷入混乱无序的状态。而…