CSDN文章点赞、收藏、评论后到底发生了什么?简要分析HTTP交互机制_csdn机器人点赞 (2)

Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
Te: trailers

articleId=126951795


看到这个数据包,可以很清晰的知道  
 `点赞就是向链接https://blog.csdn.net/phoenix/web/v1/article/like,发送一个POST数据包,数据包内容为文章ID(articleId)`  
 那么articleId如何获取?  
 其实只要细心就能发现,所有的文章点击进去,它的链接都是https://blog.csdn.net/用户名/article/details/`126793183`  
 这一串数字就是articleId,就是每个文章唯一的标识ID  
 ![请添加图片描述](https://img-blog.csdnimg.cn/be66e63ef7b340fea4b0a1e579fd9981.png)


所以这个数据包所有需求,我们都能满足,是否就可以点赞呢?测试下就知道了。在此使用工具`Apifox`(一个非常流行的接口测试工具,感觉要比postman好用)  
 完整的测试数据包如下:  
 ![请添加图片描述](https://img-blog.csdnimg.cn/aae0a3687b4c430d985ccca2b218eec4.png)


![请添加图片描述](https://img-blog.csdnimg.cn/c56c5583e2cb4cabb1c87fdb681f8c84.png)  
 后台响应结果成功,我们再用浏览器访问对应文章,查看实际结果  
 ![请添加图片描述](https://img-blog.csdnimg.cn/06406d6ce9aa44418f955b83d9398fd6.png)  
 成功!


### 2.3 我们收藏文章时会发生什么?


同样的思路,在收藏文章中,查看大量数据包时发现两个关键POST报文


1. https://mp-action.csdn.net//interact/wrapper/pc/favorite/v1/api/folderListWithCheck  
 这个报文的响应如下:返回一个json数据,查看后发现是本人所有的收藏夹明细,内容很多,最重要的就是每个收藏夹对应的id



> 
> {“code”:200,“msg”:“success”,“total”:0,“data”:{“result”:[{“Description”:“eason612的默认收藏夹”,“Username”:“eason612”,“FavoriteNum”:1712,“CreatedAt”:“2022-05-14T12:03:11.000+0000”,“CheckStatus”:0,`"ID":16557983`,“IsPrivate”:1,“FollowNum”:0,“UpdatedAt”:“2022-09-30T23:36:04.000+0000”,“Name”:“默认收藏夹”}…],“total”:9}}
> 
> 
> 


2. https://mp-action.csdn.net/interact/wrapper/pc/favorite/v1/api/addFavorite  
 ![请添加图片描述](https://img-blog.csdnimg.cn/0b830afc8bab480bba89e32e18983620.png)


**请求包字段分析**


* url: 文章的标准完整链接



> 
> 无论之前是短链接或是其他形式的链接,在跳转解析后,均会访问到这个标准样式的链接,格式为  
>  https://blog.csdn.net/文章作者的ID/details/文章ID(articleId)  
>  另外,在访问到指定文章页后,返回的大量数据中都能找到接下来分析的字段值
> 
> 
> 


* source:来源,一般均为blog
* sourceId:和上面url链接的最后数字一致,其实就是上文说的文章ID(articleId)
* author:被收藏文章的作者id
* title:被收藏文章的标题
* description:被收藏文章的描述。创作过文章的小伙伴都知道,发布前要填写的描述信息就在这里
* fromType:来源类型,电脑端就默认为PC
* username:操作者的本人id(登陆用户的id,上文提到的cookie中的username)
* folderId:文件夹的id,就是上一个重要post数据包中返回的ID字段,用于指定收藏到哪个收藏夹中


**响应报文字段分析**


内容很多,但均是重复的,仅有一个字段表明是否收藏成功,值得关注。


* msg:如是success则收藏成功,其他值则失败。


经过上述分析,发现收藏流程异常简单:  
 `收藏就是向链接https://mp-action.csdn.net/interact/wrapper/pc/favorite/v1/api/addFavorite,发送一个POST数据包,数据包内容为json`



{
“url”:“标准url”,
“source”:“blog”,
“sourceId”:“文章ID(articleId)”,
“author”:“被收藏文章的作者id”,
“title”:“被收藏文章的标题”,
“description”:“被收藏文章的描述”,
“fromType”:“PC”,
“username”:“登陆状态账户ID”,
“folderId”:“收藏夹id”,
“newFolderName”:“”
}



> 
> 以上这些字段值,在访问到指定文章页中(查看html页面源码),相对固定的位置处都能找到对应字段值,有兴趣的小伙伴可以利用脚本自动抓取这些内容。本文仅解析数据包,不在此点展开。
> 
> 
> 


分析完,就来使用Apifox实际测试下  
 ![请添加图片描述](https://img-blog.csdnimg.cn/9951ce7f8d044554b005f6b851c9f835.png)  
 ![请添加图片描述](https://img-blog.csdnimg.cn/5afbe64c481a4978908abc6122d52781.png)  
 ![请添加图片描述](https://img-blog.csdnimg.cn/71595deb178e4a3b9818cc8a58d96263.png)  
 测试成功!


### 2.4如何评论?


Let’s go! 下一个功能是评论,继续抓包查看,果然发现关键POST数据包  
 https://blog.csdn.net/phoenix/web/v1/comment/submit



POST /phoenix/web/v1/comment/submit HTTP/2
Host: blog.csdn.net
Cookie: 此处省略一万字
Referer: XXX
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Content-Length: 120

commentId=&content=%E6%96%87%E7%AB%A0%E5%BE%88%E6%A3%92%EF%BC%8C%E6%94%AF%E6%8C%81%E5%8D%9A%E4%B8%BB&articleId=126951795


header中没有特别的,body中有些内容


* commentId:评论ID 保持默认为空即可
* content:评论具体内容,是经过了url编码的内容
* articleId:文章ID,这个就非常熟悉了


没有新的内容了


**需要注意的是,在测试时发现对评论有多项限制**


1. 评论每天有数量限制
2. 对于评论有速度限制,过快的话,虽然响应成功,但是实际上没成功。
3. 评论太短、一个账户对不同文章的评论不能完全相同,评论内容与文章无关,这些情况多次发生均会触发相关机制
4. 其他用户举报,导致一段时间内不能发布评论
5. VIP用户与非VIP用户在HTML源代码中class类命名和取值略有不同。


有了之前描述,会发现评论异常简单。


## 3. 梳理总结


经过上面的分析,点赞、收藏、评论的流程其实非常简单。



> 
> **首先判断是否处于登陆状态(`就是验证cookie`),满足则可以执行后续任务。其次对于点赞、收藏和评论仅需要满足`特定数据包的字段和值`,只需保持填写正确。最后要注意`评论条件`,触发的话会造成数据包无论返回什么信息,实际页面上会发生js拦截或其他异常情况,造成失败。**
> 
> 
> 


1. **登陆状态保持:设置特定cookie**  
 `UserName: '我的csdn账户id',`  
  `UserToken: 'ni_ke_yi_cai_cai'`
2. **点赞**  
  `[POST] https://blog.csdn.net/phoenix/web/v1/article/like`   
  `body: articleId=文章ID`



> 
> Content-Type: application/x-www-form-urlencoded; charset=UTF-8
> 
> 
>
3. **收藏**  
  `[POST] https://mp-action.csdn.net/interact/wrapper/pc/favorite/v1/api/addFavorite`  
  `body: JSON`



> 
> {  
>  “url”:“标准url”,  
>  “source”:“blog”,  
>  “sourceId”:“文章ID(articleId)”,  
>  “author”:“被收藏文章的作者id”,  
>  “title”:“被收藏文章的标题”,  
>  “description”:“被收藏文章的描述”,  
>  “fromType”:“PC”,  
>  “username”:“登陆状态账户ID”,  
>  “folderId”:收藏夹id,  
>  “newFolderName”:“”  
>  }
> 
> 
>
4. **评论**  
 `[POST] https://blog.csdn.net/phoenix/web/v1/comment/submit`  
 `body: commentId=&content=你的任意评论&articleId=文章ID`



> 
> Content-Type: application/x-www-form-urlencoded; charset=UTF-8
> 
> 
>


## 4. 一键三连demo演示



> 
> 演示脚本仅用于本文的分析验证
> 
> 
> 





CSDN文章点赞、收藏、评论后到底发生了什么?简要分析HTTP交互机制




![img](https://img-blog.csdnimg.cn/img_convert/eec95f1c11ab76158cad69696071e414.png)
![img](https://img-blog.csdnimg.cn/img_convert/9811d0db35cbc166e1ec16d967eecf21.png)
![img](https://img-blog.csdnimg.cn/img_convert/69c93974ea81627fc8cd95625a0bb1b5.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)**

[外链图片转存中...(img-74GZpwfV-1714698259024)]

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)**

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值