Loading

【第8篇】Python爬虫实战-批量删除csdn私信记录

不知道你们有没有这么一个需求,就是在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'])

三、批量删除私信程序演示

四、简单总结

虽然程序写的比较简陋,但是可以完成这个小需求,从此解放双手,再也不需要手动去删除了。

posted @ 2022-01-20 11:44  Roc-xb  阅读(36)  评论(0)    收藏  举报

易微帮源码


易微帮官网