基于Python的点赞、收藏博客


前言


一、点赞和取消点赞

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

三、博客信息获取

收藏入参中博客的标题描述等信息如何获取?


总结

以上只是封装了方法,多篇博客,只需要获取博客信息后遍历调用封装方法即可。如果想做自动回访,只需获取到评论你博文的用户,根据用户再获取其博客,调用封装的方法,加个定时任务,具体细节这里不做过多说明,感兴趣的同学可以自己尝试。

猜你喜欢

转载自blog.csdn.net/weixin_38093452/article/details/131258869