(pythonQQ群管理)通过selenium 自动批量删除QQ群成员
看完本文你将可以
- 通过selenium 自动批量删除QQ群成员
- 借鉴代码获取所有群成员的QQ号、昵称、备注等信息
一年一度录取季,新生群又双叒叕要满了,眼看群里两千多人的坑位已经不多了,这时候作为一个资深的 管理员/群主自然要开始重新建一个群清理那些潜水摸鱼的群友啦!
一般的群管理就是在pc端qq进入成员管理页面,然后一个个的点击删除。
想快一点的就要进入网页端高级管理中进行条件筛选然后删除。
上面这两种方法对正常情况已经够用了
但是总感觉不是很适合,比如说不能筛选出来进群就从没有说话的(通常这样的要等到好几个月才能在网页端管理页面筛选出来)、也要自己一个个的点,非常费手不方便。于是就想到了通过网页操控网页端的管理页面来达到自动化筛选并选中的目的。
原材料:
- 一个qq群(自己要有管理员或者群主账号,没有的话就别想了叫群主来搞 )
- 一个可以跑的python环境(这不废话嘛)
- selenium 模块,还有你要用的浏览器的驱动driver。
驱动不会找的宝看下面:
• Chrome浏览器驱动:chromedriver
• Firefox浏览器驱动:geckodriver
• Edge浏览器驱动:MicrosoftWebDriver
• IE浏览器驱动:IEDriverServer
• Opera浏览器驱动:operadriver
• PhantomJS浏览器驱动:phantomjs
注意要下载和你浏览器相同版本号的驱动,不然会报错!
如我的微软的Edge浏览器
然后访问上面的链接下载对应版本就行啦
下载和你浏览器相符的驱动就行了(如win 64位下x64的,应该没有32位的电脑了吧),将驱动随便放什么位置都可以,你自己找得到路径就行。。。。一般放在源码目录
- python的pynput模块,直接pip install pynput安装就行,用于快捷键设置,也可以用其他模块替代或者不用也可以。。。。
开搞
首先通过qq的pc客户端进入网页端高级群管理页面,然后复制链接备用
链接像这种https://qun.qq.com/member.html#gid=<群号>
或者直接把你们的群号放上面也可以,不过用电脑登录qq后续比较好授权
然后复制下面代码:
#!usr/bin/python3
# -*- coding: utf-8 -*-
# @Time : 2021/7/22 0:35
# @Author : Fandes
# @FileName: 清理群成员.py
# @Software: PyCharm
import threading
import time
from pynput import keyboard
from selenium import webdrivertips = "手动登录后,(设置其他筛选条件)按alt+s可以自动下滑加载全部成员页面(也可以自己划下去)," \"加载完页面后,按alt+z筛选(没有加载的页面将不会处理),会先筛选出所有符合条件的人," \"然后以20/批量选中并弹出删除按钮(qq只允许同一批量删除最多20人)" \"手动确认后按F4键继续选中下一批...一一确认即可" \"然后手动确认删除"
print(tips)
browser = webdriver.Edge(executable_path="msedgedriver.exe") # 需要下载浏览器驱动!现在是微软Edge浏览器的驱动!!!,executable_path里面是你上面下载的驱动程序的路径
browser.get('上面复制的你的群管理链接')
num = 0
n = 8 # 32个线程,根据电脑性能来..
obj = []class Checkthread(threading.Thread):""" 线程类,人数太多时不开多线程选中会很慢,可以到改上面线程数n为1对比一下就知道了"""def __init__(self, cids):super().__init__()self.cids = cidsdef run(self):global objglobal numfor e in self.cids:tds = e.find_elements_by_tag_name("td")if tds[-2].text == tds[-4].text: # 入群时间和最后发言时间相同name = e.find_element_by_class_name("group-card").textprint("入群时间{}和最后发言时间{}相同,{}/{}".format(tds[-2].text, tds[-4].text, name, tds[-7].text))# if "21" in name or "20" in name or "19" in name or "18" in name or "17" in name or "16" in name or "15" in name:#筛选名片年级# continueobj.append(e)num += 1returndef checked(obj): # 勾选,使用js来勾选比直接使用selenium的元素定位要快得多(而且可以并行处理)browser.execute_script("arguments[0].setAttribute(arguments[1],arguments[2])",obj.find_element_by_class_name("check-input"), "checked", 1)def listen(): # 快捷键设置print("listen")def on_search(): # 开始查找所有符合条件的人并创建线程池处理print('<alt>+z pressed')global numnum = 0els = browser.find_elements_by_class_name("mb")l = len(els)threads = []for i in range(n): # 平均分配检测量thread = Checkthread(els[(i * l) // n:((i + 1) * l) // n])thread.start()print("{}->{}线程启动".format((i * l) // n, ((i + 1) * l) // n))threads.append(thread)for thread in threads:thread.join() # 线程等待print("共有{}人符合条件,开始以20/批量选中".format(num))i = 0for e in obj:if i == 0:e.find_element_by_class_name("check-input").click()else:checked(e)i += 1print("{}.选中{}".format(i, e.find_element_by_class_name("group-card").text))def on_press(k):if k == keyboard.Key.f4:kbl.stop() # 按键监听停止print("继续")if i == 20 or e == obj[-1]:print("手动确认后按F4键继续") # 手动确认删除比较安全browser.find_element_by_class_name("del-member").click()kbl = keyboard.Listener(on_press=on_press)kbl.start()kbl.join()i = 0def on_end(): # 滚动到底部print("scroll to end")i = 1while True:check_height = browser.execute_script("return document.body.scrollHeight;")for r in range(5):time.sleep(0.1)browser.execute_script("window.scrollBy(0,1000)")print("滚动中...")time.sleep(0.3)check_height1 = browser.execute_script("return document.body.scrollHeight;")print(str(check_height) + '**************' + str(check_height1))if check_height == check_height1:breakhotkey = keyboard.GlobalHotKeys({'<alt>+z': on_search,'<alt>+s': on_end,})hotkey.start()hotkey.wait()hotkey.join()print("end")listen()
注意填充你的群管理链接和浏览器驱动路径就可以开始运行了!
运行之后电脑如果登录了qq可以直接点击头像授权,或者用手机qq扫码登录
进入页面后按下alt+s键自动往下滚(看上面源码),或者自己手动往下滚动加载完。
然后按下alt+z根据条件筛选,源码里的筛选条件是筛选入群时间和最后发言时间相同的人(即进群没说话的人),也可以自己设其他条件,如筛选群名片是不是符合条件啊这些(源码注释里有一个筛选年级的例子)
等都筛选完之后就会自动分20/批弹出窗口让你确认删除,因为qq每次只能删除20个人,所以一次只会选中二十人,点击删除后按下F4键会自动再选出要踢掉的20个人,然后弹窗确认删除。。。直到删完符合条件的人。。
结束!
本文对应GitHub项目链接
(pythonQQ群管理)通过selenium 自动批量删除QQ群成员相关推荐
- 传奇玩家访问网站自动弹窗加QQ群方法以及详细代码
大家一定发现访问很多正在商业开区的大服网站时会弹窗让你加QQ群,不仅显得高大上同时也用广告费赚回了人气,在自己的群里养人,很大程度上省下了广告费和提高了人气,可谓开服必备手段之一,今天给大家分享一下网 ...
- 批量出售QQ群idcnd传媒提供
QQ群批发.出售鲜货QQ群.卖已加好各行业关键字QQ群.出售加好300人以上QQ群带QQ.鲜货QQ群.各行业关键字QQ群.300人以上群.全权购买由idcnd传媒www.idcnd.net专业长期提供 ...
- webview 上打开QQ客户端,QQ登入后自动打开添加QQ群的方法
webview 上打开QQ客户端,QQ登入后自动打开添加QQ群的方法..怎么做..求指导
- 自动弹窗加qq群教程
代码一 <embed src="https://jq.qq.com/?_wv=1027&k=5zhv1G3" autostart="true" l ...
- 自动弹窗加QQ群代码
代码一: <embed src="https://jq.qq.com/?_wv=1027&k=5zhv1G3" autostart="true" ...
- qq群邮件的html文件怎么打开,qq群邮件在哪个位置怎么查看
qq群邮件和qq邮件其实很类似,只是他们分别是个人邮箱,而群邮件是发送给群里面的朋友,相信大家都简单的区分出个人邮箱及qq群邮箱. qq群邮件在哪? qq群邮件可能大部分都已经知道在哪里能找到,但是还 ...
- 5 批量更新多条记录_如何使用 F12 开发者工具自动批量删除新浪微博
如何批量删除新浪微博内容?从 2015 年开始注册新浪微博,到现在 2019 年,算起来也好多年了,期间大约发布了 1000条微博,但大多数都是签到(新浪微盘)以及转载分享,其实自己并没有发多少条生活 ...
- python自动批量删除微信公众号文章
近期,因为需要删除微信公众号的文章,但是肯定大家都会发现,无法批量删除,公众号的后台需要删除,需要一篇一篇的删除,然后扫码确认才能删除! 这TM的太麻烦了! 后来,发现订阅助手可以再手机上进行一篇篇的 ...
- QQ群主怎么清理群里的不良内容(怎么一次性全部删除QQ群不良信息)
今天突然发现加我们的QQ群的人数减少了,打开群属性看到了如下信息,该群在群搜索结果中的排名将不予展示,群内一下内容模块存在较多不良内容,清理并通过审核可解除搜索屏蔽并提升星级.显示是4星,最优是5星! ...
- 如何批量删除QQ浏览器指定历史记录和导出指定的历史记录
QQ浏览器的历史记录只有清空历史记录和删除选中项两个功能.有时我不想删除所有的历史记录,只是想删除指定的历史记录保留对自己有用的历史记录,方便自己以后查找.但是删除选中项功能只能一项一项的选择,才能批 ...
最新文章
- php创建菜单_php实现微信公众号创建自定义菜单功能的实例代码
- linux 模块化编译,手把手教Linux驱动1-模块化编程 module
- python算法与数据结构-选择排序算法(33)
- ubuntu 18.04 install gitlab-ce
- linkedin爬虫_重新设计Linkedin的指导功能-用户体验案例研究
- 前端学习(1978)vue之电商管理系统电商系统之为每一行数据提供单独的value
- RabbitMQ从初学到精通一
- 使用vim的重不重要_VIM高级操作,经常用vim的应该多学习。多开发效率很有大帮助!...
- 光(复振幅)在自由空间中传播的matlab仿真——傅里叶光学方法
- matlab差分进化算法解决TSP问题
- WPS将Excel表格转换为LaTex表格
- 10大主流性能测试工具,总有一款适合你
- javaWeb之Response
- tensorflow模型量化篇(1)量化方法及动态范围量化
- Centos7 ,使用grep,cut 、awk 提取IP地址
- 【下载】《美语语音训练》American Accent Training 文本+MP3
- 异动分析(一)如何快速进行异常定位
- Windows 右键菜单卡顿很慢问题处理
- [W ParallelNative.cpp:212] Warning: Cannot set number of intraop threads after parallel work h
- div+css使用padding样式和 important标记实现Firefox和IE6处理带float样式的margi
热门文章
- 第9节-做网站有哪些收入接入点
- 第一个python程序:爬虫下载课件
- html原生js进度条圆形,原生JavaScript实现进度条
- 宏杉MacroSAN MS3000G2 SPC-1测试性价比第一
- 运行CATIA2018主程序setup.exe时,报错setup:Problem with VC11 Runtime installation
- jenkins详细入门教程
- python基础案例教程课后答案_Python基础案例教程
- ArcPy常用函数梳理
- linux redis命令客户端,Redis客户端
- 计算机软考高级论文怎么写,计算机软考高级论文