下载地址:https://www.pan38.com/yun/share.php?code=JCnzE   提取密码:1125

这个微信自动发朋友圈工具包含以下功能:

  1. 定时发布朋友圈功能,可配置多个时间段
  2. 随机发布功能,可设置随机时间间隔
  3. 支持文字和图片混合发布
  4. 使用itchat库实现微信登录和操作
  5. 配置文件管理,方便修改发布内容

使用说明:

  1. 安装依赖库:pip install -r requirements.txt
  2. 修改config.json配置您的发布计划
  3. 将要发布的图片放入moments_images文件夹
  4. 运行python wechat_moments_bot.py
  5. 扫码登录微信账号

源码部分:仅供学习参考用途哈~~~~~~~别人开发的


import time
import schedule
from datetime import datetime
import itchat
from itchat.content import *
import random
import os
import json
import threading

class WeChatMomentsBot:
    def __init__(self):
        self.config = self.load_config()
        self.posted_count = 0
        self.login_status = False
        self.post_queue = []
        self.running = True
        
    def load_config(self):
        try:
            with open('config.json', 'r', encoding='utf-8') as f:
                return json.load(f)
        except:
            default_config = {
                "schedule": [
                    {"time": "08:00", "content": "早安!新的一天开始了~"},
                    {"time": "12:00", "content": "午餐时间到啦!"},
                    {"time": "18:00", "content": "下班啦,今天也很充实!"}
                ],
                "random_texts": [
                    "今天天气真好",
                    "生活需要仪式感",
                    "记录美好瞬间"
                ],
                "image_folder": "moments_images",
                "random_post": True,
                "random_interval": 120
            }
            with open('config.json', 'w', encoding='utf-8') as f:
                json.dump(default_config, f, ensure_ascii=False, indent=4)
            return default_config
    
    def login(self):
        itchat.auto_login(hotReload=True, enableCmdQR=2)
        self.login_status = True
        print("登录成功!")
        
    def post_moment(self, content, image_path=None):
        if not self.login_status:
            print("请先登录微信")
            return False
            
        try:
            if image_path:
                media_id = itchat.upload_file(image_path)
                itchat.send_moment(content, [media_id])
            else:
                itchat.send_moment(content)
                
            self.posted_count += 1
            print(f"[{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] 发布成功: {content}")
            return True
        except Exception as e:
            print(f"发布失败: {str(e)}")
            return False
    
    def schedule_post(self):
        for item in self.config['schedule']:
            schedule.every().day.at(item['time']).do(
                self.post_moment, 
                item['content']
            )
    
    def random_post(self):
        if not self.config['random_post']:
            return
            
        def random_task():
            while self.running:
                interval = random.randint(
                    self.config['random_interval'] - 30,
                    self.config['random_interval'] + 30
                )
                time.sleep(interval)
                
                content = random.choice(self.config['random_texts'])
                image_path = self.get_random_image()
                self.post_moment(content, image_path)
                
        thread = threading.Thread(target=random_task)
        thread.daemon = True
        thread.start()
    
    def get_random_image(self):
        if not os.path.exists(self.config['image_folder']):
            return None
            
        images = [f for f in os.listdir(self.config['image_folder']) 
                 if f.lower().endswith(('.png', '.jpg', '.jpeg'))]
        if not images:
            return None
            
        return os.path.join(self.config['image_folder'], random.choice(images))
    
    def run(self):
        self.login()
        self.schedule_post()
        self.random_post()
        
        print("自动发圈助手已启动...")
        while True:
            schedule.run_pending()
            time.sleep(1)

if __name__ == '__main__':
    bot = WeChatMomentsBot()
    try:
        bot.run()
    except KeyboardInterrupt:
        bot.running = False
        print("\n程序已退出")
    "schedule": [
        {
            "time": "08:00",
            "content": "早安!新的一天开始了~"
        },
        {
            "time": "12:00",
            "content": "午餐时间到啦!"
        },
        {
            "time": "18:00",
            "content": "下班啦,今天也很充实!"
        }
    ],
    "random_texts": [
        "今天天气真好",
        "生活需要仪式感",
        "记录美好瞬间"
    ],
    "image_folder": "moments_images",
    "random_post": true,
    "random_interval": 120
}

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐