微信群总是有人发广告?看我用Python写一个自动化机器人消灭他!
Python 知识大全
共 3670字,需浏览 8分钟
· 2020-09-16
序幕
第一回合
没有设置微信号 头像为网红女生 微信名为特殊符号或者表情 没发过朋友圈 没有朋友圈背景图 通过后不会有除进群申请外的其他回复
wxpy
还是itchat
操作起来应该都不复杂,但是事实确证明我还是太年轻了1203
为了你的帐号安全,此微信号已不允许登录网页微信。
你可以使用Windows微信或Mac微信在电脑端登录。
第二回合
Requests
对付一些恶心的反爬措施,不如Selenium
操作起来方便。所以在发现想使用基于微信API的思路失效后,我将目光转向了相对笨一点的方法————pynput
pip install pynput
即可,使用起来也很简单,对于鼠标操作只依赖坐标,看个demo?pynput
并实例一个鼠标控制器,接着将微信在状态栏的位置提交给mouse.position
,这样鼠标就会移动到该位置,再使用mouse.press
来模拟鼠标点击即可自动打开微信。那么问题来了,如何获得我想要的位置的坐标?总不能一点一点试吧!Controller
来控制鼠标,也可以监控鼠标,比如使用下面的代码就可以记录下程序启动后鼠标的每一个点击操作所在的位置?from pynput import mouse
def on_move(x, y ):
print('鼠标移动至 {0}'.format(
(x,y)))
def on_click(x, y , button, pressed):
print('{0} 在坐标 {1}'.format('鼠标点击' if pressed else '鼠标释放', (x, y)))
if not pressed:
return False
while True:
with mouse.Listener(on_move = on_move,on_click = on_click) as listener:
listener.join()
点击微信app 点击需要的群聊 依次点击每一个群成员头像 移动到微信号的位置 双击该微信号 复制该微信号判断是否为初始微信号
Command + C
完成复制操作from pynput.keyboard import Key
from pynput.keyboard import Controller as Controller1
keyboard = Controller1()
with keyboard.pressed(Key.cmd):
keyboard.press('c')
keyboard.release('c')
command+c
来粘贴到另一个编辑中复杂过程,我们可以使用第三方库pyperclip
,直接通过下面两行代码即可将复制好的文字转为字符串import pyperclip
pyperclip.paste()
from pynput.mouse import Button, Controller
import time
from pynput.keyboard import Key
from pynput.keyboard import Controller as Controller1
import pyperclip
mouse = Controller()
# 点击微信
mouse.position = (1046.14453125, 4.546875)
time.sleep(2)
mouse.press(Button.left)
mouse.release(Button.left)
#点击头像
mouse.position = (1194.140625, 441.05859375)
time.sleep(1)
mouse.press(Button.left)
mouse.release(Button.left)
# 点击选中文本
mouse.position = (965.60546875, 284.0390625)
time.sleep(1)
mouse.click(Button.left, 2)
keyboard = Controller1()
with keyboard.pressed(Key.cmd):
keyboard.press('c')
keyboard.release('c')
time.sleep(1)
wechatid = pyperclip.paste()
print(f"微信号{wechatid}疑似广告号" if len(wechatid) > 20 else f"微信号{wechatid}不是广告号")
写在最后
pynput
有着和selenium
同样的缺点,那就是由于模拟真人操作而导致的速度慢,并且它的定位方式仅支持坐标,所以还需要保证在操作的过程中微信窗口不可以被移动,否则之前记录的元素将全部失效,此处建议开发者可以升级更多的定位方式。号外: 本号免费提供 CSDN 资源下载,需要的伙伴公众号后台回复【CSDN】 推荐阅读 306 个 Android 加密漏洞无一被修复,其中包括上亿次下载量应用 卧槽!微信居然有“隐身功能”了!
评论
一个朋友
一个朋友,在深圳奋斗7年,和女友在去年合力在龙华买了一套房,总价600万,首付3成。但就在昨天,他们崩溃了。深圳推出可售型人才住房,就在他们新房附近,同样面积,总价不到400万,售价近乎腰斩。他们想不明白,同样是深圳人,买房人为什么都要被当成炒房客对待?二手房冰封,卖不出,新房不断打着,像极了上世纪
嵌入式Linux
0
某大公司为逼迫员工离职,竟然把他的工位安排到厕所旁,没想到他直接开始记录领导的如厕时间,还发到公司大群...
上一篇:字节的跳动职级与薪资(2024年)我们与公司间的合作,宛如两艘船只在茫茫大海上相互依靠,共同抵御风浪,携手驶向成功的彼岸。然而,当航向开始产生分歧,或是波涛汹涌的风浪改变了我们的初衷,我们或许应当冷静地选择和平分手,而非在风雨中硬撑。最近,一位网友的遭遇引起了广大职场人的关注和热议。这位网友
开发者全社区
0
金融研究 | 使用Python测量关键审计事项的「信息含量」
Tips: 公众号推送后内容只能更改一次,且只能改20字符。如果内容出问题,或者想更新内容, 只能重复推送。为了更好的阅读体验,建议阅读本文博客版, 链接地址https://textdata.cn/blog/2023-01-13-information-content-of-critical-aud
大邓和他的Python
0
金融研究(更新) | 使用Python构建关键审计事项的「信息含量」
Tips: 公众号推送后内容只能更改一次,且只能改20字符。如果内容出问题,或者想更新内容, 只能重复推送。为了更好的阅读体验,建议阅读本文博客版, 链接地址https://textdata.cn/blog/2023-01-13-information-content-of-critical-aud
大邓和他的Python
0
偷偷告诉你如何一台电脑开多个微信!
大家好,我是轩辕。前几天在粉丝群里,有人问我是怎么在一台电脑上同时登录两个微信的?正好之前写过一篇文章,分析过原理,分享给没看过的小伙伴学习一下。手机端多开微信估计很多人都知道,像华为、小米等手机系统都对此做了支持,不过在运行Windows系统的电脑上怎么启动两个微信呢?其实很简单,你只需要写一个批
编程技术宇宙
0
阿里的同事,写的代码真 TMD 优雅!
通过这篇文章你将了解到整洁的代码对项目、公司和你的重要性,以及如何书写整洁的代码.通过命名、类、函数、测试这四个章节,使我们的代码变得整洁.1、为什么要保持代码整洁?不整洁的代码随着时间的增加而增加时,生产力会随之降低.导致的结果就是:代码不易扩展或扩展容易引发其他问题程序崩溃加班增加公司成本(加人
Java专栏
1
老爸嘲讽我了,写破代码一年就挣十几万,他在工地带50个工人,一个月光人头费就3万,让我滚回去跟他干!
点击上方 "大数据肌肉猿"关注, 星标一起成长点击下方链接,进入高质量学习交流群今日更新| 1052个转型案例分享-大数据交流群来自:网络,侵删有个网友的父亲是做工程的,天天就嘲笑他,说他天天写着破代码有啥用,一年就拿个十多万的死工资,然后告诉他自己在工地里面带了50个工人,一个月能抽三万
程序源代码
0
谷歌员工爆料 Python 基础团队原地解散
转自 | 机器之心编辑 | 蛋酱什么?谷歌解雇了整个 Python 基础团队?「当与你直接共事的每个人,包括你的主管,都被裁员 —— 哦,是职位被削减,而你被要求安排他们的替代者入职,这些人被告知在不同的国家担任同样的职位,但他们并不为此感到高兴,这是很艰难的一天。」发布这一动态的 Tho
机器学习算法与Python实战
0