通过接口给你的C站好友私信(不试不知道,试了忘不了)

 🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝 

🥰 博客首页:knighthood2001

😗 欢迎点赞👍评论🗨️

❤️ 热爱python,期待与大家一同进步成长!!❤️

前言:通过接口给c站好友私信,相对于其他自动化操作来说,挺方便的。

 

目录

理解过程

模块导入

构建headers、cookie和data

私信消息函数构造

结尾


 

理解过程

首先进入C站私信

打开开发者工具(F12),点击Network,随便输入一句话。

点击发送

2fa248bb3eef46f2a8837cc91b85a0ac.png

接下来会出现name为message的相关信息,点击message

cf216989ca29443ab6e3a62327c377fb.png

0adc8fbe373849129f2e0ca1fbee338f.png

d5d41a4f92fe47399769ab49fc18ba1a.png

50299ea1b2104a228d02c8464a225a4d.png

这里就是返回的信息 

上图框红的均可点击查看一下。 

经过好几个好友的对比,发现payload中只改变了这两个。

4aa4b67f417a4ffcb927fd63a7c4a2cd.png

比较好理解, 一个就是用户id,另一个就是发送消息内容。


3fecacb6b1fe408eac77e7a146471992.png

由上图可以知道,其发送的是post请求。 

对于有登录信息的网页操作,一般都需要headers和cookie,且都是以键值对复制。

3b1e94937b7d43728110e5c49641191f.png

9706ebecd1914847a054d7c2e9f40092.png

因此我们复制cookie(未给全)和user-agent。

接下来就可以写相关代码了


模块导入

import requests
import json

学过python爬虫的更好理解哦,requests发送post请求,json对返回信息进行处理。

构建headers、cookie和data

将我们刚刚的payload内容以字典形式写入data中 

message = '3'
data = {
'toUsername': 'weixin_70893610',
'messageType': 0,
'messageBody': message,
'fromClientType': 'WEB',
'fromDeviceId': '10_19098998420-1645067023740-454575',
'appId': 'CSDN-PC'
}
cookie = 'xxx以下省略很多,自己复制自己的cookie'

headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.82 Safari/537.36',
           'cookie': cookie}

对于cookie,笔者发现这个cookie是永久性的,不需要经常更新。

私信消息函数构造

def send_message(data, headers):
    url = 'https://msg.csdn.net/v1/im/send/message'
    response = requests.post(url=url, data=data, headers=headers)
    # c = response.content
    # print(c)
    c = response.content.decode()
    print(c)
    # 字符串转化成字典
    j = json.loads(c)
    # print(type(j))
    print(j["message"])
    if j["message"] == 'success':
        print("发送成功")
    else:
        print("发送失败")

通过requests.post()函数发送post请求(带上相关参数),

6391e7d17cb14ec6af7c2c242cd0ab1a.png

是否加decode()函数,结果都是可以的,区别如上图。

    # 字符串转化成字典
    j = json.loads(c)
    print(type(j))

 通过loads()函数,将c的类型由字符串转为json的字典类型。便于后续操作。

    print(j["message"])
    if j["message"] == 'success':
        print("发送成功")
    else:
        print("发送失败")

最后通过键所对应的值,判断是否发送成功。


最后调用函数一下即可

if __name__ == '__main__':
    send_message(data, headers)

结尾

        本文实现了通过接口给C站好友私信,挺方便的。

        需要源码的可以通过下方二维码加我好友(备注来意)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

knighthood2001

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值