不知道你们有没有这么一个需求,就是在csdn中,如果你关注的博主太多,每天收到的私信记录就非常多。如果要删除,得一个一个删,数量少,问题倒不是很大,如果私信记录有几百条,那么手动删就是一个费时费力的活了。如何通过 python来完成这个小需求呢?
目录
一、获取程序需要的cookie信息
二、编写批量删除私信程序代码
三、批量删除私信程序演示
四、简单总结
一、获取程序需要的cookie信息
登录csdn之后,打开浏览器控制台(快捷键F12),切换到XHR
任意找一个含有cookie的请求url,在请求头中,把cookie字段放到下面的程序里面即可。
二、编写批量删除私信程序代码
#!/usr/bin/python
# -*- coding: UTF-8 -*-
"""
@author: Roc-xb
"""
import requests
import json
def get_sx_list():
url = "https://msg.csdn.net/v1/im/query/historySession3?page=1&pageSize=40"
payload = {}
headers = {
'authority': 'msg.csdn.net',
'pragma': 'no-cache',
'cache-control': 'no-cache',
'sec-ch-ua': '"Chromium";v="94", "Google Chrome";v="94", ";Not A Brand";v="99"',
'accept': 'application/json, text/plain, */*',
'dnt': '1',
'sec-ch-ua-mobile': '?0',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36',
'sec-ch-ua-platform': '"Windows"',
'origin': 'https://im.csdn.net',
'sec-fetch-site': 'same-site',
'sec-fetch-mode': 'cors',
'sec-fetch-dest': 'empty',
'referer': 'https://im.csdn.net/chat/',
'accept-language': 'zh-CN,zh;q=0.9',
'cookie': cookie
}
response = requests.get(url, headers=headers, data=payload).json()
return response['data']
def delete_sx_msg(mid):
url = "https://msg.csdn.net/v1/im/session/deleteSession"
payload = {"fromUsername": mid}
global cookie
headers = {
'authority': 'msg.csdn.net',
'pragma': 'no-cache',
'cache-control': 'no-cache',
'sec-ch-ua': '"Chromium";v="94", "Google Chrome";v="94", ";Not A Brand";v="99"',
'accept': 'application/json, text/plain, */*',
'dnt': '1',
'content-type': 'application/json;charset=UTF-8',
'sec-ch-ua-mobile': '?0',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36',
'sec-ch-ua-platform': '"Windows"',
'origin': 'https://im.csdn.net',
'sec-fetch-site': 'same-site',
'sec-fetch-mode': 'cors',
'sec-fetch-dest': 'empty',
'accept-language': 'zh-CN,zh;q=0.9',
'cookie': cookie}
response = requests.post(url, headers=headers, data=json.dumps(payload)).json()
print(mid, "删除成功", response)
if __name__ == '__main__':
cookie = '这里放你自己的CSDN cookie'
while True:
data = get_sx_list()
if (len(data) == 0):
print("程序运行结束!")
break
for item in data:
delete_sx_msg(item['username'])
三、批量删除私信程序演示
四、简单总结
虽然程序写的比较简陋,但是可以完成这个小需求,从此解放双手,再也不需要手动去删除了。