V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
pianjiao
V2EX  ›  分享创造

利用 Python 实现微信半自动化操作

  •  
  •   pianjiao · 2019-12-19 17:03:38 +08:00 · 6102 次点击
    这是一个创建于 1780 天前的主题,其中的信息可能已经有所发展或是发生改变。

    本文首发于公众号:小夭同学,同步更新个人博客:故事胶片,转载请署名。

    注意:须有一个可以登录网页版的微信号

    可以在 微信网页版 登录一下查看

    1、需求场景

    很多管理大量微信社群的小伙伴都有这样的场景,当微信群的人数达到 100 人之后,将不能在通过分享的群二维码加入群里,必须自主添加好友后,手动去邀请才能加用户拉入群众,如果有大量的用户加群,就只能一个一个手动的拉,想想心情就很美丽,手动哭泣。。。。

    2、准备工作

    1、一台不关机的电脑 OR 一台服务器

    2、 安装以下相关依赖(有的不需要)

    #coding=utf8
    import requests
    from requests import exceptions
    from urllib.request import urlopen
    from bs4 import BeautifulSoup
    from urllib.parse import urlencode
    from threading import Timer
    import re
    from wxpy import *
    import  schedule
    import  time
    import http
    import  json 
    import datetime
    import random
    import os
    import ctypes
    

    3、一个能够在网页版微信登录的账号(重要)

    4、该微信创建群聊,并保存通讯录中(重要)

    3、代码部分

    3.1、注册机器人

    bot = Bot(cache_path=True,console_qr = 2)
    bot.enable_puid('wxpy_puid.pkl')
    rebot = bot.groups().search('Goodog') // 需要加入的群
    

    3.2、自动通过好友后发送的加群提示

    allText = '回复关键词加群: \n\n1、羊毛(加入羊毛优惠群)\n2、py (加入机器人体验群)\n3、互粉(加入公众号互粉群)\n4、更多群敬请期待\n\n -PS: 如果回复关键字无效,请耐心等待手工拉入。'
    

    3.3、自动通过好友请求

    @bot.register(msg_types=FRIENDS)
    def auto_audit_msg(msg):
        new_friend = bot.accept_friend(msg.card)
        new_friend.send('我是 Goodog 小助手,如果你也想拥有一个跟我一样功能的机器人请添加公众号 [小夭同学] 留言获取!')
        new_friend.send_raw_msg(
            raw_type=42,
            raw_content='<msg username="infopush" nickname="小夭同学"/>'
        ) 
        new_friend.send(allText)
    

    3.4、关键字回复发送加群邀请链接

    @bot.register(Friend, msg_types=TEXT)
    def auto_add_msg(msg):
        if 'py' in msg.text.lower():
            rebot[0].add_members(msg.sender, use_invitation=True)
            msg.sender.send('如果加入 py 群失败,请等待人工邀请加入!!')
    

    3.5、邀请用户入群后发送群公告

    invite_compile = re.compile(r'邀请"(.*?)"加入了群聊\s*$') // 判断是否为新用户入群
    

    3.5.1、新用户入群发送的公告

    rebot_msg = '''@{atname}\u2005\u2005\u2005🌹🌹🌹欢迎加入群🌹🌹🌹\n
    ⚡⚡⚡⚡ 此群禁止发广告,不然踢!!!\n
    💣💣💣 无法登录网页微信的问题,无有效解决办法。\n
    🙋🙋🙋 怎样提问:\n
    1. 不要问无意义的问题 🌡 
    2. 问问题前最好贴出截图。🧸 
    3. 描述清晰,信息充足。💎
    4. 如果想要源码请关注💡  [小夭同学] 💡 回复 [帮助] 获取'''
    

    3.5.2、为加入的群进行注册,以用来抓取群消息

    @bot.register(rebot, NOTE)  // NOTE 为系统通知
    def invite_group(msg):
        """ 群通知处理 """
        text = msg.text # 通知的内容
        member = msg.member.name # 消息发送者昵称
        invite_names = invite_compile.findall(text)  # 判断是否是加入了新用户
        if invite_names:  # 用于邀请
            invite_name = invite_names[0]  # 加入者的昵称
            if rebot_msg:
                note = rebot_msg.format(atname=invite_name)
                msg.sender.send(note)  # 向群里发送欢迎语句
            return
    

    4、运行机器人

    while True:
        schedule.run_pending()
        time.sleep(1)
    

    5、Git

    代码已上传 Github

    10 条回复    2019-12-23 16:41:19 +08:00
    yibie
        1
    yibie  
       2019-12-20 04:46:24 +08:00
    可惜网页版已经登不上了
    pianjiao
        2
    pianjiao  
    OP
       2019-12-20 08:20:33 +08:00 via Android
    @yibie 是挺可惜的
    aalikes95
        3
    aalikes95  
       2019-12-20 10:11:56 +08:00
    现在好多账号不能网页版使用
    jzyzcz
        4
    jzyzcz  
       2019-12-20 10:16:14 +08:00
    以前也弄过基于网页微信版的机器人, 但是过段时间我就登不上网页版微信了. 据说微信在慢慢的关闭网页版的接口, (狗头
    pianjiao
        5
    pianjiao  
    OP
       2019-12-20 10:57:17 +08:00
    @jzyzcz 感觉还放开了点 之前有段时间 邀请加群的就不能用 后来 突然又可以 ; 了
    evilhero
        6
    evilhero  
       2019-12-20 18:53:23 +08:00 via Android
    微信好难用,别打我
    pianjiao
        7
    pianjiao  
    OP
       2019-12-20 21:04:10 +08:00
    @evilhero 不打你
    JimiJimi
        8
    JimiJimi  
       2019-12-21 09:24:33 +08:00
    网页版微信都要关了还搞这个? 49 年入国军?
    electronic
        9
    electronic  
       2019-12-23 15:06:07 +08:00
    QQ 现在还有没有自动化的工具,每天晚上有个发图片的要接收
    homecoming
        10
    homecoming  
       2019-12-23 16:41:19 +08:00
    好多微信,都不可以用微信网页版了吧?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   922 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 21:29 · PVG 05:29 · LAX 14:29 · JFK 17:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.