自动删除QQ空间留言 电脑端下载 - 批量操作 pc免费下载
密码:ev8y
你是否也有过,想删除QQ空间里某个人的对自己发表的说说或者留言板的全部评论,但又因说说太多,手动查找再删除太过麻烦?OK,我也有这个需求,成品分享给你。
如果想自己琢磨,源码在文末;如果想直接使用,exe链接在文末。
一、使用本程序,需要提供4个内容:你的QQ号、对方的名称、g_tk和cookie。
1、你的QQ号
就是你的QQ号,复制到conf.json文件
2、对方的名称
要删除的对方的备注或昵称(ta在你空间所显示的名称),一般如果你设置了备注,就是备注名;没设置备注,就是他的网名。复制到conf.json文件。可以多个好友,以英文逗号分隔。
3、g_tk
a. 首先手动登陆你的QQ空间
b. 点进“我的主页”
c. 按F12,选中network(有的浏览器显示是“网络”)
d. 刷新一下浏览器,点击有html的一项(刷新后选最上面第一个html)
e. 最下面就有g_tk了,复制到conf.json文件
界面先不要关
4、cookie
g_tk获取完,上面就有cookie,复制到conf.json文件
二、运行程序
三、源码
[Python]纯文本查看复制代码
import time
import requests
import json
with open('conf.json', 'r', encoding='utf-8') as f:
content = f.read()
msg = json.loads(content)
print(msg)
# 你的QQ号
QQ = msg['QQ']
# 浏览器打开QQ空间,按F12,找到g_tk
g_tk = msg['g_tk']
# 要删除的对方的备注或昵称(ta在你空间所显示的名称)
targetname = msg['name'].split(',')
# 浏览器打开QQ空间,按F12,找到cookie
cookie = msg['cookie']
# 1:删说说的评论;2:删留言板留言;3:1+2
mode = msg['mode']
print('@'*60)
print('>> 你的QQ:', QQ)
print('>> 对方名称:', targetname)
print('>> 模式:', mode)
print('@'*60)
print('>> 开始运行')
print()
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.122 Safari/537.36',
'cookie': cookie,
}
def getcomment():
delcnt = 0
delmsg = []
totalcomment = 20
pos = 0
while pos < totalcomment:
print('#' * 60)
print(">> 当前位置:", pos)
url = 'https://user.qzone.qq.com/proxy/domain/taotao.qq.com/cgi-bin/emotion_cgi_msglist_v6?uin={0}&inCharset=utf-8&outCharset=utf-8&hostUin={0}¬ice=0&sort=0&pos={1}&num=20&cgi_host=https%3A%2F%2Fuser.qzone.qq.com%2Fproxy%2Fdomain%2Ftaotao.qq.com%2Fcgi-bin%2Femotion_cgi_msglist_v6&code_version=1&format=json&need_private_comment=1&g_tk={2}'.format(QQ, pos, g_tk)
pos += 20
html = requests.get(url, headers=headers).json()
totalcomment = int(html['total'])
print('>> 总共条数:', totalcomment)
msglist = html['msglist']
for item in msglist:
try:
commentlist = item['commentlist']
conlist = item['conlist']
if conlist:
conlist = conlist[0]['con']
print(">> 发布的说说:", conlist)
else:
print(">> 发布仅为图片")
topicId = QQ+'_' + item['tid']
print(">> topicId:", topicId)
for i in commentlist:
content = i['content']
name = i['name']
createTime = i['createTime']
commentId = commentlist.index(i)+1
print(">> 评论{}: ({}){}t{}".format(commentId, createTime, name, content))
if name in targetname:
print(">> 删除本条评论")
delcomment(topicId, commentId)
delcnt += 1
delmsg.append(content)
print()
except:
pass
time.sleep(1)
print('*' * 60)
print('共删除条数:', delcnt)
print('共删除内容:', delmsg)
print('*' * 60)
def delcomment(topicId, commentId):
url = 'https://user.qzone.qq.com/proxy/domain/taotao.qzone.qq.com/cgi-bin/emotion_cgi_delcomment_ugc?g_tk={0}'.format(g_tk)
data={
'uin': QQ,
'hostUin': QQ,
'topicId': topicId,
'commentId': commentId,
'inCharset':'',
'outCharset':'',
'ref':'',
'hostuin': QQ,
'code_version': '1',
'format': 'fs',
'qzreferrer': 'https://user.qzone.qq.com/proxy/domain/qzs.qq.com/qzone/app/mood_v6/html/index.html#mood&g_iframeUser=1&g_iframedescend=1&uin={0}&pfid=2&qz_ver=8&appcanvas=0&qz_style=31¶ms=&entertime=1588985689146&canvastype=&cdn_use_https=1'.format(QQ)
}
html = requests.post(url, headers=headers, data=data)
time.sleep(1)
html = requests.post(url, headers=headers, data=data)
if '对不起,原文已经被删除,无法查看' in html.text:
print('原文已经被删除')
def get_msgboard():
start = 0
total = 10
delcnt = 0
delmsg = []
while start
print('#' * 60)
print(">> 当前位置:", start)
url = 'https://user.qzone.qq.com/proxy/domain/m.qzone.qq.com/cgi-bin/new/get_msgb?uin={0}&hostUin={0}&num=10&start={1}&hostword=0&essence=1&r=0.2554088508533668&iNotice=0&inCharset=utf-8&outCharset=utf-8&format=json&ref=qzone&g_tk={2}'.format(QQ, start, g_tk)
start += 10
html = requests.get(url, headers=headers).json()
data = html['data']
total = data['total']
print('>> 总共条数:', total)
commentList = data['commentList']
for item in commentList:
id = item['id']
nickname = item['nickname']
uin = item['uin']
ubbContent = item['ubbContent']
pubtime = item['pubtime']
print(">> 留言: ({}){}t{}".format(pubtime, nickname, ubbContent))
if nickname in targetname:
print(">> 删除本条留言")
del_msgboard(id,uin)
delcnt += 1
delmsg.append(ubbContent)
time.sleep(1)
print('*' * 60)
print('共删除条数:', delcnt)
print('共删除内容:', delmsg)
print('*' * 60)
def del_msgboard(targetQQ,uin):
url = 'https://h5.qzone.qq.com/proxy/domain/m.qzone.qq.com/cgi-bin/new/del_msgb?g_tk={}'.format(g_tk)
data={
'hostUin': QQ,
'idList': uin,
'uinList': targetQQ,
'format': 'fs',
'iNotice': '1',
'inCharset': 'utf-8',
'outCharset': 'utf-8',
'ref': 'qzone',
'json': '1',
'g_tk': g_tk,
'qzreferrer': 'https://user.qzone.qq.com/proxy/domain/qzs.qq.com/qzone/msgboard/msgbcanvas.html#page=1'
}
html = requests.post(url, headers=headers, data=data)
time.sleep(1)
html = requests.post(url, headers=headers, data=data)
if '留言不存在或已被删除' in html.text:
print('留言不存在或已被删除')
try:
if mode == '1':
getcomment()
elif mode == '2':
get_msgboard()
elif mode == '3':
getcomment()
get_msgboard()
except Exception as e:
print(e)
input(">> 任意键退出...")
get_msgboard()