日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

code删除前两个_听说用python来批量删除说说也挺快乐的呢~

發(fā)布時間:2023/12/4 python 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 code删除前两个_听说用python来批量删除说说也挺快乐的呢~ 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

原文鏈接

聽說用python來批量刪除說說也挺快樂的呢~?mp.weixin.qq.com

先睹為快

在終端運行如下命令即可:

python clearQzone.py (--manual)

如果加了--manual選項,意思就是每條說說刪除前你都要先人工確認一下是否真的需要刪除它,否則就是直接把所有說說都刪了。

效果如下(借的別人不用的小號測試的,不是我的QQ號T_T):

批量刪除說說https://www.zhihu.com/video/1248312837506195456

導語

接昨天的那篇文章:

帶大家用python來享受一下批量刪除微博的快感唄~

看到有小伙伴留言說批量刪除說說也挺讓人快樂的,頓時明白了ta的意思。干脆趁熱打鐵,再來一期用python批量刪除QQ空間說說的教程吧。

廢話不多說,讓我們愉快地開始吧~

相關文件

https://github.com/CharlesPikachu/DecryptLogin

開發(fā)工具

Python版本:3.6.4 相關模塊: DecryptLogin模塊; argparse模塊; 以及一些python自帶的模塊。

環(huán)境搭建

安裝Python并添加到環(huán)境變量,pip安裝需要的相關模塊即可。

原理簡介

和之前類似,還是先利用我們開源的DecryptLogin包實現(xiàn)一波QQ空間的模擬登錄操作:

from DecryptLogin import login@staticmethod def login():lg = login.Login()infos_return, session = lg.QQZone()return session

然后,我們去QQ空間抓一波包,即進入QQ空間之后按F12打開開發(fā)者工具,再點擊一下說說按鈕,可以發(fā)現(xiàn)如下鏈接:

即:

https://user.qzone.qq.com/proxy/domain/taotao.qq.com/cgi-bin/emotion_cgi_msglist_v6?

它可以返回說說頁首頁的說說數(shù)據(jù)。簡單分析一下這個鏈接需要攜帶的參數(shù)有哪些:

1. 易知參數(shù) uin: 用戶的QQ號 ftype: 可以始終為'0' sort: 可以始終為'0' pos: 可以始終為'0' num: 可以始終為'20' replynum: 可以始終為'100' callback: 可以始終為'_preloadCallback' code_version: 可以始終為'1' format: 可以始終為'jsonp' need_private_comment: 可以始終為'1' 2. 不易知參數(shù) g_tk qzonetoken

其中g_tk我們在以前的文章里說過應該怎么算:

模擬登錄系列 | QQ空間模擬登錄

即找到對應的js代碼:

然后轉成py的就行了:

'''計算g_tk''' def __calcGtk(self, string):e = 5381for c in string:e += (e << 5) + ord(c)return 2147483647 & e

而參數(shù)qzonetoken,我們也可以找到對應的js代碼:

原來它可以是一個固定值。寫個簡單的程序測試一下:

'''獲得首頁的說說數(shù)據(jù)''' def __getAllTwitters(self):url = 'https://user.qzone.qq.com/proxy/domain/taotao.qq.com/cgi-bin/emotion_cgi_msglist_v6?'params = {'uin': self.uin,'ftype': '0','sort': '0','pos': '0','num': '20','replynum': '100','g_tk': self.g_tk,'callback': '_preloadCallback','code_version': '1','format': 'jsonp','need_private_comment': '1','qzonetoken': '12a2df7fc3ce126e67c62b0577cdea5133e79e77f46ae920b2a8b822ac867e54416698be9ee883f09e'}response = self.session.get(url, params=params)response_json = response.content.decode('utf-8').replace('_preloadCallback(', '')[:-2]response_json = json.loads(response_json)msglist = response_json['msglist']if msglist is None:msglist = []all_twitters = {}for item in msglist:tid = item['tid']created_time = item['created_time']content = item['content']all_twitters[tid] = [created_time, content]return all_twitters

可以發(fā)現(xiàn)返回的數(shù)據(jù)如下:

和我們首頁的數(shù)據(jù)是對上的:

看來我們前面的分析是完全正確的?,F(xiàn)在,我們只需要再抓包看看刪除說說需要請求哪個接口就ok啦(自己手動刪除一條說說就能抓到這個接口了,很簡單的):

需要攜帶的參數(shù)如下:

hostuin: 用戶的QQ號 tid: 說說的id t1_source: 固定值'1' code_version: 固定值'1' format: 固定值'fs' qzreferrer: 格式為'https://user.qzone.qq.com/{用戶QQ號}/infocenter'

于是,我們現(xiàn)在就可以愉快地開始寫代碼啦:

'''外部調用''' def run(self):url = 'https://user.qzone.qq.com/proxy/domain/taotao.qzone.qq.com/cgi-bin/emotion_cgi_delete_v6?'del_count = 0total_count = 0while True:all_twitters = self.__getAllTwitters()if not all_twitters:breakfor key, value in all_twitters.items():total_count += 1print('[INFO]: 正在處理第%s條說說, 已成功刪除%s條說說...' % (total_count, del_count))if self.is_manual:print('說說時間: %s, 說說內容: %s...' % (str(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(value[0]))), value[1]))user_input = input('是否需要刪除該條說說(yes/no): ')if user_input.lower() == 'n' or user_input.lower() == 'no':continuedata = {'hostuin': self.uin,'tid': key,'t1_source': '1','code_version': '1','format': 'fs','qzreferrer': f'https://user.qzone.qq.com/{self.uin}/infocenter'}params = {'qzonetoken': self.qzonetoken,'g_tk': self.g_tk}try:response = self.session.post(url, data=data, params=params)del_count += 1time.sleep(random.randrange(1, 3)+random.random())except:passtime.sleep(random.randrange(3, 6)+random.random())print('[INFO]: 程序運行完畢, 共檢測到您的賬戶一共有%s條說說, 其中%s條已被成功刪除...' % (total_count, del_count))

基本的原理和之前批量刪除微博那個代碼一樣,只不過加了個是否需要手動確認之后再刪除的選項。

大功告成,完整源代碼詳見相關文件~

總結

以上是生活随笔為你收集整理的code删除前两个_听说用python来批量删除说说也挺快乐的呢~的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。