解放双手!写了个小工具给喜欢的博主一键三连

news2025/1/16 2:54:04

1. 写在前面

  大家写博客的可能都知道,有时候我们或多或少会认识一些志同道合的博主。大家在写博客的时候偶尔也都会彼此之间相互支持一下

再如果看到自己感兴趣的文章,想收藏一下。这些需求我们目前大部分人都自己用手去操作,这是非常费力的。所以我浅研了一下写了一个小爬虫工具,以此来解放我们的双手,让程序帮助我们完成以上的这些操作!

声明:本文所涉及的技术爬虫示例仅供学习和研究之用!请大家在合法范围内使用爬虫技术,并尊重网站的使用规则和隐私政策

2. 进入主题

首先我们需要先登陆我们自己的账号,大部分的操作都是依赖账号捆绑的,我们先在用户登陆框输入账号信息看一下登陆提交的表单信息,如下:

在这里插入图片描述

根据上图登陆提交参数,我们就可以实现代码:

import requests

session = requests.session()
account = '账号ID'
headers = {
	  'Accept': 'application/json, text/plain, */*',
	  'Accept-Language': 'zh-CN,zh;q=0.9',
	  'Connection': 'keep-alive',
	  'Content-Type': 'application/json;charset=UTF-8',
	  'Origin': 'https://passport.csdn.net',
	  'Referer': 'https://passport.csdn.net/login?code=applets',
	  'Sec-Fetch-Dest': 'empty',
	  'Sec-Fetch-Mode': 'cors',
	  'Sec-Fetch-Site': 'same-origin',
	  'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36',
	  'X-Tingyun-Id': 'im-pGljNfnc;r=533164990',
	  'sec-ch-ua': '"Not/A)Brand";v="99", "Google Chrome";v="115", "Chromium";v="115"',
	  'sec-ch-ua-mobile': '?0',
	  'sec-ch-ua-platform': '"macOS"',
	}
	
	data = '{"userIdentification":"'+ f"{account}" +'",
		"pwdOrVerifyCode":"密码","loginType":"1",
		"webUmidToken":"","uaToken":""}'
	response = session.post(
		'https://passport.csdn.net/v1/register/pc/login/doLogin',
		headers=headers,
		data=data
    )

data参数内需要我们更换的就是账号与密码了,更换即可

接下来我们post请求登陆后,就需要我们使用cookie保持登陆状态进行后续的点赞、评论、收藏

接下来我们看一看点赞是如何实现的,首先我们点赞查看一下请求信息:

在这里插入图片描述

可以看到点赞接口是非常简单的,提交的参数只有一个文章ID,那么我们开始实现如下:

data = {
   'articleId': 文章ID,
}
response = session.post(
	"https://blog.csdn.net//phoenix/web/v1/article/like", 
	headers=self.headers,
	data=data,
	cookies=session.cookies
)

接着我们看看评论是如何实现的,评论提交请求也是非常简单的。基本上没有太复杂的参数提交,也没有加密都是明文

在这里插入图片描述

那么我们的评论实现代码如下:

data = {
   'commentId': '',
    'content': '要评论的内容',
    'articleId': '文章ID'
}
        response = self.session.post('https://blog.csdn.net/phoenix/web/v1/comment/submit', headers=self.headers, cookies=session.cookies, data=data)

最后我们看一下收藏是如果去实现的,收藏相比前两项稍微多了一项请求,可以看到首先我们点击收藏的时候弹出了一个框,是我们的收藏夹
在这里插入图片描述

所以第一步我们需要先获取收藏夹的ID

headers = {
    'Accept': 'application/json, text/plain, */*',
    'Accept-Language': 'zh-CN,zh;q=0.9',
    'Connection': 'keep-alive',
    'Content-Type': 'application/json;charset=UTF-8',
    'Origin': 'https://passport.csdn.net',
    'Referer': 'https://passport.csdn.net/login?code=applets',
    'Sec-Fetch-Dest': 'empty',
    'Sec-Fetch-Mode': 'cors',
    'Sec-Fetch-Site': 'same-origin',
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36',
    'X-Tingyun-Id': 'im-pGljNfnc;r=533164990',
    'sec-ch-ua': '"Not/A)Brand";v="99", "Google Chrome";v="115", "Chromium";v="115"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
}
# 收藏
params = (
    ('url', 'https://blog.csdn.net/qiulin_wu/article/details/文章ID'), # 收藏的网站
)
# 获取收藏夹id
response = self.session.get('https://mp-action.csdn.net/interact/wrapper/pc/favorite/v1/api/folderListWithCheck', headers=headers, params=params, cookies=session.cookies)
folderId = response.json().get("data").get("result")[0].get("ID")

最后我们就剩下收藏操作了,如下:

在这里插入图片描述

可以看到收藏提交的也是一堆参数,不过也都是比较简单的,代码实现如下:

# 一堆参数
username = '自己的账号ID'
data = '{
	"url":"https://blog.csdn.net/qiulin_wu/article/details/132106681",
	"source":"blog",
	"sourceId":文章ID,
	"author":"要收藏文章的作者ID,
	"title":"title","description":"description",
	"fromType":"PC",
	"username":"'+ f"{username}" +'","folderIdList":[%d]}' % folderId
        response = self.session.post('https://mp-action.csdn.net/interact/wrapper/pc/favorite/v1/api/addFavoriteInFolds', headers=headers, data=data.encode('utf-8'), cookies=cookie)

folderId这个字段的就是上面收藏夹请求拿到的ID

好的,到此我们就将一键三连完美的用程序实现出来了。现在我们看一看效果:

在这里插入图片描述
  好了,到这里又到了跟大家说再见的时候了。创作不易,帮忙点个赞再走吧。你的支持是我创作的动力,希望能带给大家更多优质的文章

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

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

相关文章

恒运资本:布林线什么意思?

布林线是一种经过股票价格的标准差核算出涨跌起伏的技能剖析方法。这种剖析方法由约翰布林在1980年左右开发而来,是一种常用的股市剖析东西。本文将从前史、原理、应用等多个视点叙述布林线的含义,以及它对出资者所带来的意义。 一、前史 布林线在1983年…

解决方案:如何在 Amazon EMR Serverless 上执行纯 SQL 文件?

长久已来,SQL以其简单易用、开发效率高等优势一直是ETL的首选编程语言,在构建数据仓库和数据湖的过程中发挥着不可替代的作用。Hive和Spark SQL也正是立足于这一点,才在今天的大数据生态中牢牢占据着主力位置。在常规的Spark环境中&#xff0…

目前互联网企业知识库使用情况?企业知识库搭建缺陷有什么?

目前互联网企业普遍使用知识库作为内部和外部知识管理的工具。知识库通过集中存储和组织企业内部的知识和信息,使其易于访问和共享 目前互联网企业知识库使用情况: 内部知识管理: 知识库用于内部员工的知识共享和知识管理。企业可以将各个…

5款专业思维导图软件推荐:提升效率,促进协作!

思维导图作为一种有效的信息组织和可视化工具,已经广泛地应用于学习、工作和生活中。通过思维导图,我们能够以高效的方式把握和处理大量信息。 但到了挑选软件的环节,市面上层出不穷的思维导图软件,容易让人看花眼,不知…

matlab使用教程(17)—广度优先和深度优先搜索

1.可视化广度优先搜索和深度优先搜索 此示例说明如何定义这样的函数:该函数通过突出显示图的节点和边来显示 bfsearch 和 dfsearch 的可视化结果。 创建并绘制一个有向图。 s [1 2 3 3 3 3 4 5 6 7 8 9 9 9 10]; t [7 6 1 5 6 8 2 4 4 3 7 1 6 8 2]; G dig…

【Bug解决】1、Nacos启动成功,但却无法访问(提示:无法访问此网站,192.168.10.133的响应时间过长)

项目场景: 在虚拟机上通过Docker创建Nacos容器,已经创建成功,查看Nacos启动日志也是成功。但通过端口号加8848/nacos(如:http://192.168.88.10:8848/nacos)无法访问到Nacos管理页面。 问题描述 原因分析&a…

DC电源模块生产用料扎实的表现

BOSHIDA DC电源模块生产用料扎实的表现 随着现代科技的不断发展,DC电源模块已经被广泛应用于各种电子设备中。不同于其它电子元器件,DC电源模块生产所需用料的扎实程度对其性能的影响非常大。下面,本文将就DC电源模块生产用料扎实的表现进行…

互联网 vs IC 谁更有前景?

1、行业发展趋势 互联网行业 去年,阿里、腾讯裁员的消息双双冲上热搜,引发网友讨论。有消息称腾阿里、腾讯预计裁员 10%~30%,阿里多个业务线已确认裁员名单。 中国互联网的黄金时期已经过了,这个信号越来越明显。最…

卷积神经网络全解:(AlexNet/VGG/ GoogleNet/LeNet/卷积/激活/池化/全连接)

CNN,卷积神经网络,Convolution Neural Network 卷积计算公式: N (W-F2p)/s1 1 经典网络 按照时间顺序 1.1 LeNet LeNet是 Yann LeCun在1998年提出,用于解决手写数字识别的视觉任务。自那时起&#x…

八大排序超详解(动图+源码)

💓博主个人主页:不是笨小孩👀 ⏩专栏分类:数据结构与算法👀 刷题专栏👀 C语言👀 🚚代码仓库:笨小孩的代码库👀 ⏩社区:不是笨小孩👀 🌹欢迎大家三连关注&…

高效提升工作效率,亚马逊云科技热门课程带你入门生成式AI

当前人工智能仍处于飞速发展阶段,作为当下最先进的科学技术之一,相信大家对AIGC关注已久。今天,引用亚马逊云科技最新发布的七项生成式AI新功能来跟大家聊聊近期的热门生成式AI! 有人说,生成式AI将带来充满创造性的新世…

AMEYA360:村田共模扼流线圈,针对车载应用的高频噪声

近年来,随着ADAS(高级驾驶辅助系统)精度的提高,汽车行业开始安装大量毫米波雷达、LiDAR等高速传感设备。如果噪声从外部进入这些设备,系统可能无法正常工作。相反,如果这些设备产生噪声,则可能会对其他设备产生不利影响…

mysql 02 数据库的约束

为防止错误的数据被插入到数据表,MySQL中定义了一些维护数据库完整性的规则;这些规则常称为表的约束。常见约束如下: 主键约束 主键约束即primary key用于唯一的标识表中的每一行。被标识为主键的数据在表中是唯一的且其值不能为空。这点类似…

ICT产教融合创新实训基地软件测试实训室建设方案

一 、系统概述 ICT产教融合创新,简单来说,就是信息与通信技术(ICT)与产业界、教育界的融合创新。这个概念强调了在现代社会中,信息技术与产业发展以及教育培训之间相互关联的重要性。 ICT产教融合创新的核心思想包括以…

【正点原子STM32连载】第十章 跑马灯实验 摘自【正点原子】APM32F407最小系统板使用指南

1)实验平台:正点原子stm32f103战舰开发板V4 2)平台购买地址:https://detail.tmall.com/item.htm?id609294757420 3)全套实验源码手册视频下载地址: http://www.openedv.com/thread-340252-1-1.html# 第十…

数字孪生技术对环境保护有哪些作用?

数字孪生技术在环境保护中的作用不容忽视,为我们创造了全新的可能性和解决方案。在追求可持续发展的今天,数字孪生以其独特的能力,正逐渐改变着环境保护的方式。 数字孪生技术首先在环境监测方面发挥了巨大作用。通过传感器和数据采集设备&a…

JVM整体回忆笔记

模块三 内存的分配 指针碰撞 空闲列表 分配内存的时候出现并发问题,几个线程同时抢同一块内存区域 CAS方法解决 本地线程分配缓冲(-XX:UseTLAB),jvm默认开启 对象的组成 对象头、实例数据、对齐填充(保证对象8个字节…

Sonar:Class variable fields should not have public accessibility

公有类变量字段不遵守封闭原则,主要有三个问题: 无法添加验证等附加行为。内部表示暴露在外,事后无法更改。成员值可能会在代码的任何地方发生变化,并且可能不符合程序员的假设。 通过使用私有属性和访问方法(set 和…

输出倒逼输入系列之 阻塞 or 等待?

操作系统线程状态 《趣谈Linux 操作系统》第12章节,讲到 进程的数据结构,其中涉及到任务状态,这里简单概述一下 首先在操作系统中,不管是进程还是线程,都统一是 任务的概念,它的数据结构 为 task_strcut。…

深度学习1:通过模型评价指标优化训练

P(Positive)表示预测为正样本,N(negative)表示预测为负样本,T(True)表示预测正确,F(False)表示预测错误。 TP:正样本预测正确的数量(正确检测) FP:负样本预测正确数量(误检测) TN…