🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝 🥰 博客首页:knighthood2001 😗 欢迎点赞👍评论🗨️ ❤️ 热爱python,期待与大家一同进步成长!!❤️ |
前言:通过接口给c站好友私信,相对于其他自动化操作来说,挺方便的。
目录
理解过程
首先进入C站私信
打开开发者工具(F12),点击Network,随便输入一句话。
点击发送
接下来会出现name为message的相关信息,点击message
这里就是返回的信息
上图框红的均可点击查看一下。
经过好几个好友的对比,发现payload中只改变了这两个。
比较好理解, 一个就是用户id,另一个就是发送消息内容。
由上图可以知道,其发送的是post请求。
对于有登录信息的网页操作,一般都需要headers和cookie,且都是以键值对复制。
因此我们复制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请求(带上相关参数),
是否加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站好友私信,挺方便的。
需要源码的可以通过下方二维码加我好友(备注来意)