python爬虫实时转发文章新闻;微信机器人使用;「建议收藏」

2022-06-28 11:19:51 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

前言:当前时间2022-4-24 已经有五个月没水文章了!personally技术不增反退,咸扯蛋!

今天搞个好玩的,用“鬼手”搞的免费版的微信pc端机器人 爬虫用来实时转发文章或新闻啥的!

感谢“鬼手”免费分享的源码!(鄙人就单纯喜欢打感叹号!没其他意思!不是强调!)

一、介绍“鬼手”的pc端微信使用

先甩github链接:https://github.com/cixingguangming55555/wechat-bot

里面有使用教程,但为了方便和本着就是讲细的原则还是说说吧。

1、下载源码(废话0.0)

2、下载对应的微信版本,以下版本接口都可,因为“鬼手”已经全部提供了一下版本的dll

微信全部版本 提取码:ha4a

3、登录微信,在server路径下打开微信DLL注入器,选择对应的版本,点击注入即可!

4、开始敲代码,”鬼手”已经在client路径下给了一些语言(java,python…)模板!

使用的websocket连接,websocket又分长短连接,我们为了方便就是使用短连接!

以下代码实现三个功能:查询群和用户id、@群成员发消息、发送图片或文件。代码是一起的,为了方便观看就拆分开来!

1、查询群和用户id

代码语言:javascript复制
# -*- 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、@群成员发消息

代码语言:javascript复制
# 艾特群成员  以下都是必要参数
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、发送图片或文件

代码语言:javascript复制
# 发送图片或文件
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('[**]文件发送成功!!!')

二、搞个爬虫

阿吧阿吧…(打算弄个知识星球爬虫的模板!感觉多此一举就省略吧!)

三、两个一综合,那不就出来了嘛!对爬虫写个循环让其一直检测是否有最新的数据,就实现简单的监控了嘛!有新消息第一时间就分享出来!

代码语言:javascript复制
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

0 人点赞