文章目录
- 前言
- 一、点赞和取消点赞
- 1.请求url和请求方法
- 2.入参
- 3.响应结果
- 3.1点赞
- 3.2取消点赞
- 4.代码
- 5.效果
- 二、收藏
- 2.1判断博客是否收藏过
- 2.1.1请求url和请求方法
- 2.1.2响应结果
- 未收藏
- 已收藏
- 2.1.3代码
- 2.1.4效果
- 2.2收藏博客
- 2.2.1请求url和请求方法
- 2.2.2入参
- 2.2.3响应结果
- 2.2.4代码
- 2.2.5效果
- 三、博客信息获取
- 总结
前言
一、点赞和取消点赞
1.请求url和请求方法
2.入参
3.响应结果
3.1点赞
3.2取消点赞
经过对比,可以看到点赞和取消点赞是同一个接口,只不过响应结果中的status值不一样,点赞返回的是true,取消点赞返回的是false,那么我们请求一次后,如果返回的是true,说明点赞成功,如果返回的是false,那么我们再请求一次接口即可。
4.代码
def like(username, usertoken, articleid):
url = 'https://blog.csdn.net//phoenix/web/v1/article/like'
headers = {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.17763',
'Cookie': f"UserName={username}; UserToken={usertoken};"
}
post_data = {
'articleId': articleid
}
res = requests.post(url, data=post_data, headers=headers)
if res.json()['code'] == 200 and res.json()['message'] == 'success':
if res.json()['data']['status']:
print(f'【{username}】点赞博客:{articleid} 成功!')
else:
print(f'【{username}】取消点赞博客:{articleid} 成功!')
like(username, usertoken, articleid)
else:
print(f'【{username}】点赞博客:{articleid} 失败!')
5.效果
【weixin_38093452】取消点赞博客:129799621 成功!
【weixin_38093452】点赞博客:129799621 成功!
Process finished with exit code 0
二、收藏
我们在收藏一篇博客之前,需要知道这篇博客我们有没有收藏过
2.1判断博客是否收藏过
2.1.1请求url和请求方法
2.1.2响应结果
未收藏
已收藏
经过对比,我们可以看到,未收藏的响应结果中status是false,已收藏的响应结果中status是true。
2.1.3代码
def isCollect(username,usertoken,articleid):
url = f'https://blog.csdn.net/phoenix/web/v1/isCollect?articleId={articleid}'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.17763',
'Cookie': f"UserName={username}; UserToken={usertoken};"
}
res = requests.get(url,headers=headers)
print(res.json()['data']['status'])
return res.json()['data']['status']
2.1.4效果
True
Process finished with exit code 0
2.2收藏博客
2.2.1请求url和请求方法
2.2.2入参
2.2.3响应结果
入参分析:
author:博文作者
description:博文描述
folderIdList:收藏夹id列表
sourceId:博文id
title:博文标题
url:博文地址
username:登录用户
2.2.4代码
def addFavorite(username,usertoken,author,articleid,title,description,article_url,folderIdList):
url = 'https://mp-action.csdn.net/interact/wrapper/pc/favorite/v1/api/addFavorite'
headers = {
'Content-Type': 'application/json',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.17763',
'Cookie': f"UserName={username}; UserToken={usertoken};"
}
post_data = json.dumps({
'url': article_url,
'source': 'blog',
'sourceId': articleid,
'author': author,
'title': title,
'description': description,
'fromType': 'PC',
'username': username,
'folderIdList': folderIdList,
'newFolderName': ''
})
res = requests.post(url,data=post_data, headers=headers)
if res.json()['code'] == 200 and res.json()['msg'] == 'success':
print(f'【{username}】收藏博客:{articleid} 成功!')
else:
print(f'【{username}】收藏博客:{articleid} 失败!')
2.2.5效果
【weixin_38093452】收藏博客:129799621 成功!
Process finished with exit code 0
三、博客信息获取
收藏入参中博客的标题描述等信息如何获取?
总结
以上只是封装了方法,多篇博客,只需要获取博客信息后遍历调用封装方法即可。如果想做自动回访,只需获取到评论你博文的用户,根据用户再获取其博客,调用封装的方法,加个定时任务,具体细节这里不做过多说明,感兴趣的同学可以自己尝试。