微信轰炸脚本
其实这是一个很久远的代码了,应该是我当时自学Python时写的一个不是很成熟的代码,非常的简略,不过核心功能应该是实现了,暂时测试没发现什么Bug,如果大家发现了什么Bug可以告诉我,本菜鸡先谢过各位了hhhh
最近肺炎闹的厉害,呆在家实在是没事干,所以干脆自学了一点docker知识,然后把自己的博客搬到了docker中,这样我可以随时打包带走,再在别的地方部署。上学期被闫大佬推荐过nextcould,是一个私有云,听说挺好用的,所以又开了一个docker容器部署了nextcloud,有机会我会把这个过程写成一篇blog,给大家分享一下我在这中间踩的坑。
说回这个脚本,主要过程其实很简单,就是调用itchat这个库,这个库中提供了很多微信的接口,丰富多彩。如果大家有兴趣可以去了解一下。然后我自己实现了一些很简单的逻辑就完成了这个脚本,试验过,效果还凑合。不过现在来看我当时写的代码还有一点看不过眼啊hhh。不过虽然看不过眼,但是还是可以勉强水一篇博客的嘛哈哈哈哈
0x00 Itchat介绍
首先,我先来介绍一下这个脚本的核心男主角——itchat。先来看一下itchat官方文档上写的介绍:
使用不到三十行的代码,你就可以完成一个能够处理所有信息的微信机器人。
当然,该api的使用远不止一个机器人,更多的功能等着你来发现,比如这些。
该接口与公众号接口itchatmp共享类似的操作方式,学习一次掌握两个工具。
如今微信已经成为了个人社交的很大一部分,希望这个项目能够帮助你扩展你的个人的微信号、方便自己的生活。
如果大家感兴趣,可以去看该项目的官方文档,上面写的还是比较详细的:Itchat官方文档
然后安装就使用pip就可以:
pip install itchat
之后将它import进去就可以了。
import itchat
0x01 使用
安装完后我们就可以使用了。
1.1 登陆退出
没什么可说的,直接调用函数就可以了。
itchat.auto_login(hotReload=True) #调用auto_login登陆,hotReload=True代表的是热登陆,也就是在你登陆后在一定时间内可以自动登陆
itchat.logout() #退出
1.2 获取(好友||群组)列表
核心就是发送消息了,要想发送消息首先应该找到被发送人,这时我们调用itchat.search_friends
来找到他,如下:
try:
my_friend = itchat.search_friends(name = friend)[0]['UserName'] #name参数接收的是用户的用户名
except:
print("未找到用户!")
return None
上面方法返回的是一个列表,列表中是符合要求的用户的字典,我们默认选取搜索到的第一个用户,从字典中找出他的UserName。
同时我的代码中还考虑的群组的情形,与上面的代码基本相同,在这里不再赘述,直接给出代码:
try:
my_group = itchat.search_chatrooms(name = group)[0]['UserName'] #name参数接收的是群组名称
except:
print("未找到群聊!")
return None
1.3 发送消息
然后就是发送消息了,调用方法itchat.send
来完成,如下:
while i != num:
itchat.send(b,toUserName = my_friend) #b是发送的消息,toUserName接收的参数是用户信息
time.sleep(num_time) #num_time是间隔时长
i += 1
上面是发送部分的代码,num是发送次数,b是发送的信息,num_time是发送间隔。直接调用方法发生即可。(吐槽一下,我真的是起名废,永远不会给变量起名)
0x01 代码
下面是脚本的完整代码,如果有需要可以整下来自己玩去,不过会不会被打我就说不准了/手动滑稽
import itchat
import time
def SendToGroup():
group = input('输入要轰炸的群聊:')
try:
my_group = itchat.search_chatrooms(name = group)[0]['UserName']
except:
print("未找到群聊!")
return None
num = int(input('输入轰炸的次数:'))
b = str(input('输入要轰炸的内容:'))
num_time = float(input('输入轰炸间隔:'))
i = 0
itchat.send('您的好友正在轰炸',toUserName = my_group)
while i != num:
itchat.send(b,toUserName = my_group)
time.sleep(num_time)
i += 1
itchat.send('轰炸完毕',toUserName = my_group)
print("轰炸完毕!")
def SendToFriend():
friend = input('输入要轰炸的好友:')
try:
my_friend = itchat.search_friends(name = friend)[0]['UserName']
except:
print("未找到用户!")
return None
num = int(input('输入轰炸的次数:'))
b = str(input('输入要轰炸的内容:'))
num_time = float(input('输入轰炸间隔:'))
i = 0
itchat.send('您的好友正在轰炸',toUserName = my_friend)
while i != num:
itchat.send(b,toUserName = my_friend)
time.sleep(num_time)
i += 1
itchat.send('轰炸完毕',toUserName = my_friend)
print("轰炸完毕!")
itchat.auto_login(hotReload=True)
while True:
mode = int(input('选择你要轰炸的模式(个人输入1,群聊输入2,退出输入0):'))
if mode == 1:
SendToFriend()
elif mode == 2:
SendToGroup()
elif mode == 0:
break
else:
print("输入错误,请重新输入!")
itchat.logout()
0x02 后记(废话)
当时写好后整人用过一次,差点被拉黑,所以奉劝大家,不要轻易使用,小心友谊的小船说翻就翻hhhh
另外说一嘴,有一说一,当时没有养成良好的习惯,写代码不打注释。现在养成打注释的习惯应该谢谢我的数据结构老师,要不是他要期末检查代码,让我们给他讲代码,我发现如果不打注释可能自己写的代码自己都不记得是个啥玩意,所以求生欲让我养成这个习惯hhh不过打注释真的是个好习惯,希望大家能养成这个良好的习惯hhh
源码已上传GitHub:
文章的确不错啊https://www.cscnn.com/
看的我热血沸腾啊https://www.237fa.com/
叼茂SEO.bfbikes.com
想想你的文章写的特别好
您好,扫完二维码之后遇到个错误信息:
xml.parsers.expat.ExpatError: mismatched tag: line 64, column 4
您知道是什么情况么
滴!学生卡!打卡时间:下午6:06:57,请上车的乘客系好安全带~