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

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

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

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

猜你喜欢

转载自blog.csdn.net/qiulin_wu/article/details/132314928