大家好,又見面了,我是你們的朋友全棧君。
前言:當前時間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()
寫個循環,不就可一直發微信消息了嘛!(她或他不理你,那就轟炸他)嘿嘿邪惡!勿輕易嘗試,後果自負!
結束語:
寫了半天,感覺又像沒寫!一大堆廢話,確實水跨跨的!就這樣吧!
寂寞梧桐春院鎖清秋,剪不斷,理還亂…
發布者:全棧程序員棧長,轉載請注明出處:https://javaforall.cn/150698.html原文鏈接:https://javaforall.cn