前言:当前时间2022-4-24 已经有五个月没水文章了!personally技术不增反退,咸扯蛋!
今天搞个好玩的,用“鬼手”搞的免费版的微信pc端机器人+爬虫用来实时转发文章或新闻啥的!
感谢“鬼手”免费分享的源码!(鄙人就单纯喜欢打感叹号!没其他意思!不是强调!)
先甩github链接:https://github.com/cixingguangming55555/wechat-bot
里面有使用教程,但为了方便和本着就是讲细的原则还是说说吧。
微信全部版本 提取码:ha4a
使用的websocket连接,websocket又分长短连接,我们为了方便就是使用短连接!
以下代码实现三个功能:查询群和用户id、@群成员发消息、发送图片或文件。代码是一起的,为了方便观看就拆分开来!
1、查询群和用户id
# -*- coding:utf-8 -*-
# author:BC
import websocket
import time
import json
SERVER = 'ws://127.0.0.1:5555'
AT_MSG = 550
USER_LIST = 5000
PIC_MSG = 500
ATTATCH_FILE = 5003
def getid():
id = time.strftime("%Y%m%d%H%M%S", time.localtime(time.time()))
return id
# 获取微信通讯录用户名字和wxid
def send_wxuser_list():
qs = {
'id': getid(),
'type': USER_LIST,
'content': 'user list',
'wxid': 'null',
}
s = json.dumps(qs)
return s
# 打印群名
def print_wxuser():
ws = websocket.create_connection(SERVER)
ws.send(send_wxuser_list())
result = json.loads(ws.recv())
content = result['content']
for item in content:
id = item['wxid']
m = id.find('@')
if m != -1:
print(f'微信群:---->roomid:{id}----name:{item["name"]}')
else:
print(f'用户:---->roomid:{id}----name:{item["name"]}')
if __name__ == '__main__':
ws = websocket.create_connection(SERVER)
print_wxuser()
2、@群成员发消息
# 艾特群成员 以下都是必要参数
def send_at_msg(roomid, content, nickname):
j = {
'id': getid(),
'type': AT_MSG,
'roomid': roomid,
'wxid': 'your wxid',
'content': content,
'nickname': nickname,
'ext': 'null'
}
s = json.dumps(j)
return s
if __name__ == '__main__':
roomid = input('Roomid:') # 群id或用户id
content = input('send Content:') # 需要发送的内容
nickname = input('@ name required:') # 被@人名
ws.send(send_at_msg(roomid, content, nickname))
print('[**]艾特成功!!!')
3、发送图片或文件
# 发送图片或文件
def send_pic_msg(type, wxid, path):
j = {
'id': getid(),
'type': type,
'wxid': wxid,
'roomid': 'null',
'content': path,
'nickname': "null",
'ext': 'null'
}
s = json.dumps(j)
return s
if __name__ == '__main__':
type = input('[***]功能选项----A、发送图片\tB、发送文件(输入大小写字母即可):')
wxid = input('wxid:') # 群id或用户id
path = input('path:') # 需要发送的文件路径
if type == 'A' or type == 'a':
ws.send(send_pic_msg(PIC_MSG, wxid, path))
print('[**]图片发送成功!!!')
elif type == 'B' or type == 'b':
ws.send(send_pic_msg(ATTATCH_FILE, wxid, path))
print('[**]文件发送成功!!!')
阿吧阿吧...(打算弄个知识星球爬虫的模板!感觉多此一举就省略吧!)
ws = websocket.create_connection(SERVER)
ws.send(send_at_msg(roomid, str(content), nickname)) # 群id、内容、@人名
ws.close()
写个循环,不就可一直发微信消息了嘛!(她或他不理你,那就轰炸他)嘿嘿邪恶!勿轻易尝试,后果自负!
结束语:
写了半天,感觉又像没写!一大堆废话,确实水跨跨的!就这样吧!
寂寞梧桐春院锁清秋,剪不断,理还乱...