Windows微信自动化终极指南:wxauto快速实现微信机器人开发
Windows微信自动化终极指南wxauto快速实现微信机器人开发【免费下载链接】wxautoWindows版本微信客户端非网页版自动化可实现简单的发送、接收微信消息简单微信机器人项目地址: https://gitcode.com/gh_mirrors/wx/wxautoWindows版本微信客户端自动化操作通过wxauto库可以轻松实现简单的发送、接收微信消息构建微信机器人。这个强大的Python库为技术开发者和自动化爱好者提供了完整的Windows微信自动化解决方案帮助您从重复性工作中解放出来专注于更有价值的开发任务。 项目概述与价值主张wxauto是一个专门针对Windows版微信客户端的自动化Python库基于UIAutomation技术实现。它允许开发者通过Python代码控制微信客户端实现消息收发、好友管理、群组操作等自动化功能是构建微信机器人和自动化工作流的理想工具。核心价值通过自动化解放生产力让开发者能够自动处理重复性消息回复批量管理好友和群组定时发送重要通知构建智能客服系统实现聊天记录归档分析✨ 核心功能亮点展示智能消息监听与自动回复系统wxauto最强大的功能之一是实时消息监听机制能够监控指定聊天窗口的新消息并进行智能处理from wxauto import WeChat import time # 初始化微信实例 wx WeChat() def smart_message_handler(msg, chat): 智能消息处理函数 # 关键词触发自动回复 if 报价 in msg.content or 价格 in msg.content: chat.SendMsg(您好我们的产品价格如下\n基础版199元/月\n专业版499元/月) elif 技术支持 in msg.content: chat.SendMsg(技术支持热线400-123-4567\n工作时间9:00-18:00) elif 文档 in msg.content: chat.SendMsg(请查看我们的官方文档获取详细信息) else: chat.SendMsg(已收到您的消息我们会尽快回复) # 添加监听器到指定聊天 wx.AddListenChat(nickname客户咨询群, callbacksmart_message_handler) # 保持程序运行 wx.KeepRunning()批量文件管理与自动化传输对于需要定期发送相同文件到多个联系人的场景wxauto提供了高效的文件批量发送功能from wxauto import WeChat from pathlib import Path import time class FileAutomation: def __init__(self): self.wx WeChat() def batch_send_documents(self, recipients, document_dirD:/工作文档): 批量发送文档到指定联系人 # 获取所有文档文件 doc_files list(Path(document_dir).glob(*.pdf)) \ list(Path(document_dir).glob(*.docx)) for recipient in recipients: print(f开始发送文件给 {recipient}) for file_path in doc_files: # 根据文件名匹配发送给对应人员 if recipient in file_path.stem: try: self.wx.SendFiles(filepathstr(file_path), whorecipient) print(f✓ 已发送 {file_path.name} 给 {recipient}) time.sleep(2) # 避免操作过快 except Exception as e: print(f✗ 发送失败: {e})自动化好友管理与群组操作wxauto支持自动处理好友申请、设置备注标签、管理群组成员等复杂操作from wxauto import WeChat class ContactManager: def __init__(self): self.wx WeChat() def auto_accept_friend_requests(self, rules): 根据规则自动处理好友申请 new_friends self.wx.GetNewFriends(acceptableTrue) for friend in new_friends: accepted False for rule in rules: if rule[keyword] in friend.message: friend.accept(remarkrule[remark], tagsrule[tags]) print(f✓ 已接受申请{friend.name}备注{rule[remark]}) accepted True break if not accepted: # 默认处理方式 friend.accept() print(f✓ 已接受申请{friend.name}默认处理) def get_group_members_analysis(self, group_name): 获取群组成员分析报告 self.wx.ChatWith(group_name) members self.wx.GetGroupMembers() print(f 群组 {group_name} 成员分析报告) print(f总成员数{len(members)}) print(前10位成员) for i, member in enumerate(members[:10], 1): print(f{i}. {member}) return members️ 快速上手指南环境准备与安装步骤wxauto要求Windows操作系统和Python 3.9环境确保已安装正确版本的微信客户端3.9.X版本。# 安装wxauto pip install wxauto # 或者从源码安装 git clone https://gitcode.com/gh_mirrors/wx/wxauto cd wxauto pip install -e .基础配置与连接测试初始化微信客户端时可以根据需要设置语言和调试模式# 基础配置示例 from wxauto import WeChat # 初始化微信实例简体中文版 wx WeChat(languagecn, debugTrue) # 测试连接 try: # 向文件传输助手发送测试消息 wx.SendMsg(wxauto连接测试成功, 文件传输助手) print(✅ 微信连接成功) # 获取会话列表 sessions wx.GetSessionList() print(f当前有 {len(sessions)} 个会话) except Exception as e: print(f❌ 连接失败{e})功能验证脚本完成安装和配置后可以通过简单的测试脚本验证各项功能是否正常工作def verify_wxauto_features(): 验证wxauto核心功能 wx WeChat() test_results { 消息发送: False, 消息接收: False, 会话列表: False, 好友管理: False } try: # 1. 测试消息发送 wx.SendMsg(功能测试消息, 文件传输助手) test_results[消息发送] True # 2. 测试消息接收 messages wx.GetAllMessage() test_results[消息接收] len(messages) 0 # 3. 测试会话列表获取 sessions wx.GetSessionList() test_results[会话列表] len(sessions) 0 # 4. 测试好友管理 friends wx.GetAllFriends() test_results[好友管理] len(friends) 0 except Exception as e: print(f功能验证失败{e}) # 输出验证结果 print(功能验证结果) for feature, result in test_results.items(): status ✅ 通过 if result else ❌ 失败 print(f{feature}: {status}) return all(test_results.values()) 实战应用场景场景一自动化日报发送系统对于需要每天发送日报的团队可以构建定时发送系统import schedule import time from datetime import datetime from wxauto import WeChat class DailyReportAutomation: def __init__(self): self.wx WeChat() self.setup_daily_schedule() def setup_daily_schedule(self): # 设置定时任务 schedule.every().day.at(09:00).do(self.send_morning_reminder) schedule.every().day.at(18:00).do(self.send_evening_report) schedule.every().monday.at(10:00).do(self.send_weekly_plan) def send_morning_reminder(self): 发送晨会提醒 today datetime.now().strftime(%m月%d日) message f 早上好\n今天是{today}晨会将于9:30开始请准时参加。 self.wx.SendMsg(message, 工作群) print(f[{datetime.now()}] 晨会提醒已发送) def send_evening_report(self): 发送日报提醒 message 日报提交提醒 请各位同事在下班前提交今日工作总结 1. 今日完成工作 2. 遇到的问题 3. 明日计划 self.wx.SendMsg(message, 团队群) print(f[{datetime.now()}] 日报提醒已发送) def run(self): 启动定时任务 print(⏰ 日报自动化系统已启动) while True: schedule.run_pending() time.sleep(60) # 每分钟检查一次场景二智能客服机器人实现基于关键词匹配和上下文理解的自动客服系统from wxauto import WeChat from collections import defaultdict class IntelligentCustomerService: def __init__(self): self.wx WeChat() self.knowledge_base self.load_knowledge_base() self.conversation_history defaultdict(list) def load_knowledge_base(self): 加载知识库 return { product_info: { keywords: [产品, 功能, 特性], response: 我们的产品主要功能包括\n1. 自动化消息处理\n2. 批量文件管理\n3. 智能客服系统\n4. 数据分析报告 }, pricing: { keywords: [价格, 费用, 收费, 多少钱], response: 产品定价方案\n- 个人版免费\n- 团队版99元/月\n- 企业版499元/月 }, support: { keywords: [帮助, 支持, 客服, 联系], response: 技术支持方式\n 电话400-123-4567\n 邮箱supportexample.com\n⏰ 工作时间9:00-18:00 } } def find_best_response(self, message): 根据消息内容找到最佳回复 message_lower message.lower() for category, info in self.knowledge_base.items(): for keyword in info[keywords]: if keyword in message_lower: return info[response] return 感谢您的咨询请提供更详细的信息我会尽力为您解答。 def start_service(self): 启动客服服务 print( 智能客服机器人已启动等待消息...) while True: # 监听所有新消息 new_messages self.wx.GetAllNewMessage() for msg in new_messages: # 跳过系统消息和自己发送的消息 if msg.type system or msg.sender 自己: continue # 生成智能回复 response self.find_best_response(msg.content) # 发送回复 msg.chat.SendMsg(response) print(f 已回复 {msg.sender}{response[:50]}...) # 保存对话记录 self.conversation_history[msg.sender].append({ time: msg.time, question: msg.content, answer: response }) time.sleep(2) # 每2秒检查一次新消息场景三聊天记录归档与分析工具自动备份重要聊天记录并生成分析报告import json import csv from datetime import datetime, timedelta from pathlib import Path from wxauto import WeChat class ChatAnalyzer: def __init__(self, data_dirchat_data): self.wx WeChat() self.data_dir Path(data_dir) self.data_dir.mkdir(exist_okTrue) def export_chat_history(self, chat_name, days7, formatjson): 导出指定聊天记录 self.wx.ChatWith(chat_name) # 计算时间范围 end_date datetime.now() start_date end_date - timedelta(daysdays) # 导出文件名 timestamp end_date.strftime(%Y%m%d_%H%M%S) filename f{chat_name}_{timestamp} # 获取消息 messages self.wx.GetAllMessage() filtered_messages [] for msg in messages: if start_date msg.time end_date: message_data { timestamp: msg.time.strftime(%Y-%m-%d %H:%M:%S), sender: msg.sender, content: msg.content, message_type: msg.type, chat_name: chat_name } filtered_messages.append(message_data) # 保存数据 if format json: output_file self.data_dir / f{filename}.json with open(output_file, w, encodingutf-8) as f: json.dump(filtered_messages, f, ensure_asciiFalse, indent2) elif format csv: output_file self.data_dir / f{filename}.csv with open(output_file, w, newline, encodingutf-8) as f: writer csv.DictWriter(f, fieldnamesfiltered_messages[0].keys()) writer.writeheader() writer.writerows(filtered_messages) print(f✅ 已导出 {len(filtered_messages)} 条消息到 {output_file}) return filtered_messages def generate_chat_report(self, messages): 生成聊天分析报告 if not messages: return 没有可分析的消息数据 # 统计信息 total_messages len(messages) senders {} message_types {} for msg in messages: # 统计发送者 sender msg[sender] senders[sender] senders.get(sender, 0) 1 # 统计消息类型 msg_type msg[message_type] message_types[msg_type] message_types.get(msg_type, 0) 1 # 生成报告 report f 聊天记录分析报告 统计时间{datetime.now().strftime(%Y-%m-%d %H:%M:%S)} ---------------------------------------- 总体统计 总消息数{total_messages} 时间段{messages[0][timestamp]} 至 {messages[-1][timestamp]} 发送者统计 for sender, count in sorted(senders.items(), keylambda x: x[1], reverseTrue)[:5]: percentage (count / total_messages) * 100 report f\n {sender}: {count} 条 ({percentage:.1f}%) report \n\n 消息类型统计 for msg_type, count in message_types.items(): percentage (count / total_messages) * 100 report f\n {msg_type}: {count} 条 ({percentage:.1f}%) return report⚡ 高级技巧与优化策略操作频率控制与防封策略为避免触发微信的安全机制需要合理控制操作频率import time from threading import Lock from datetime import datetime class OperationRateLimiter: 操作频率限制器 def __init__(self, max_operations_per_minute20, max_operations_per_hour100): self.minute_limit max_operations_per_minute self.hour_limit max_operations_per_hour self.minute_operations [] self.hour_operations [] self.lock Lock() def can_operate(self): 检查是否可以执行操作 with self.lock: now time.time() current_time datetime.now() # 清理过期记录 self.minute_operations [t for t in self.minute_operations if now - t 60] self.hour_operations [t for t in self.hour_operations if now - t 3600] # 检查限制 if (len(self.minute_operations) self.minute_limit and len(self.hour_operations) self.hour_limit): self.minute_operations.append(now) self.hour_operations.append(now) return True return False def wait_for_operation(self): 等待直到可以执行操作 while not self.can_operate(): wait_time self.calculate_wait_time() print(f⏳ 操作频率限制等待 {wait_time:.1f} 秒...) time.sleep(wait_time) def calculate_wait_time(self): 计算需要等待的时间 now time.time() if self.minute_operations: time_since_first now - self.minute_operations[0] if time_since_first 60: return 60 - time_since_first return 1.0 # 默认等待1秒错误处理与自动恢复机制健壮的错误处理是自动化脚本稳定运行的关键import logging from functools import wraps class ErrorHandler: def __init__(self): self.setup_logging() def setup_logging(self): 配置日志系统 logging.basicConfig( levellogging.INFO, format%(asctime)s - %(levelname)s - %(message)s, handlers[ logging.FileHandler(wxauto_errors.log), logging.StreamHandler() ] ) def retry_on_failure(self, max_retries3, delay2): 重试装饰器 def decorator(func): wraps(func) def wrapper(*args, **kwargs): for attempt in range(max_retries): try: return func(*args, **kwargs) except Exception as e: logging.warning(f第 {attempt 1} 次尝试失败: {e}) if attempt max_retries - 1: time.sleep(delay * (attempt 1)) # 指数退避 else: logging.error(f所有 {max_retries} 次尝试均失败) raise return wrapper return decorator def safe_operation(self, operation_func, *args, fallback_funcNone, **kwargs): 安全执行操作提供降级方案 try: return operation_func(*args, **kwargs) except Exception as e: logging.error(f操作失败: {e}) if fallback_func: logging.info(尝试执行降级方案...) return fallback_func(*args, **kwargs) else: # 记录错误但不中断程序 return None性能监控与资源管理监控系统资源使用情况确保自动化脚本稳定运行import psutil import threading from datetime import datetime class ResourceMonitor: def __init__(self, alert_thresholdsNone): self.alert_thresholds alert_thresholds or { cpu_percent: 80, memory_percent: 85, disk_percent: 90 } self.monitoring False self.metrics_history [] def collect_metrics(self): 收集系统指标 metrics { timestamp: datetime.now(), cpu_percent: psutil.cpu_percent(interval1), memory_percent: psutil.virtual_memory().percent, disk_percent: psutil.disk_usage(/).percent, process_count: len(list(psutil.process_iter())) } # 检查微信进程 wechat_processes [] for proc in psutil.process_iter([name, memory_percent]): try: if wechat in proc.info[name].lower(): wechat_processes.append(proc.info) except (psutil.NoSuchProcess, psutil.AccessDenied): continue metrics[wechat_processes] wechat_processes return metrics def check_alerts(self, metrics): 检查是否触发警报 alerts [] if metrics[cpu_percent] self.alert_thresholds[cpu_percent]: alerts.append(f⚠️ CPU使用率过高: {metrics[cpu_percent]}%) if metrics[memory_percent] self.alert_thresholds[memory_percent]: alerts.append(f⚠️ 内存使用率过高: {metrics[memory_percent]}%) if not metrics[wechat_processes]: alerts.append(⚠️ 未检测到微信进程) return alerts def start_monitoring(self, interval60): 启动监控 self.monitoring True def monitor(): while self.monitoring: metrics self.collect_metrics() self.metrics_history.append(metrics) # 保留最近100条记录 if len(self.metrics_history) 100: self.metrics_history self.metrics_history[-100:] # 检查警报 alerts self.check_alerts(metrics) if alerts: for alert in alerts: print(f[{metrics[timestamp]}] {alert}) time.sleep(interval) monitor_thread threading.Thread(targetmonitor) monitor_thread.daemon True monitor_thread.start() print(✅ 资源监控已启动)❓ 常见问题解答1. 微信窗口找不到怎么办# 确保微信客户端已打开并登录 wx WeChat() # 检查微信窗口是否存在 if not wx.UiaAPI.Exists(): print(❌ 未找到微信窗口) print(请确保) print(1. 微信客户端已打开) print(2. 微信已登录) print(3. 微信版本为3.9.X) exit(1) else: print(✅ 微信窗口检测成功)2. 消息发送失败如何处理def safe_send_message(wx, message, recipient, max_retries3): 安全发送消息包含重试机制 for attempt in range(max_retries): try: wx.SendMsg(message, recipient) print(f✅ 消息发送成功给 {recipient}) return True except Exception as e: print(f❌ 第 {attempt 1} 次发送失败: {e}) if attempt max_retries - 1: wait_time 2 ** attempt # 指数退避 print(f等待 {wait_time} 秒后重试...) time.sleep(wait_time) else: print(所有重试均失败) return False3. 如何避免操作频率限制class OperationController: def __init__(self): self.last_operation_time {} self.min_interval 2 # 最小操作间隔秒 def can_operate(self, operation_type): 检查是否可以执行指定类型的操作 current_time time.time() last_time self.last_operation_time.get(operation_type, 0) if current_time - last_time self.min_interval: self.last_operation_time[operation_type] current_time return True return False def wait_for_operation(self, operation_type): 等待直到可以执行操作 while not self.can_operate(operation_type): remaining self.min_interval - (time.time() - self.last_operation_time.get(operation_type, 0)) if remaining 0: time.sleep(min(remaining, 1))4. 如何处理不同类型的消息def process_different_message_types(message): 处理不同类型的消息 if message.type text: print(f 文本消息: {message.content}) return text elif message.type image: print(f️ 图片消息) # 保存图片 message.download(save_pathdownloads/images/) return image elif message.type file: print(f 文件消息: {message.content}) # 保存文件 message.download(save_pathdownloads/files/) return file elif message.type voice: print(f 语音消息) return voice else: print(f❓ 未知消息类型: {message.type}) return unknown 社区与贡献指南项目架构概览wxauto采用模块化设计每个模块都有明确的职责分工wxauto/ ├── wxauto.py # 核心自动化类提供主要API接口 ├── elements.py # UI元素封装处理微信界面控件 ├── uiautomation.py # Windows UI自动化基础库 ├── utils.py # 工具函数和辅助方法 ├── errors.py # 错误处理类 └── languages.py # 多语言支持如何参与贡献wxauto是一个开源项目欢迎开发者参与贡献报告问题在使用过程中遇到任何问题欢迎提交Issue改进代码修复bug、优化性能、添加新功能完善文档补充使用说明、添加示例代码分享案例分享您的使用场景和最佳实践开发环境设置# 克隆项目 git clone https://gitcode.com/gh_mirrors/wx/wxauto cd wxauto # 创建虚拟环境 python -m venv venv source venv/bin/activate # Linux/Mac # 或 venv\Scripts\activate # Windows # 安装开发依赖 pip install -e . pip install pytest black flake8代码规范遵循PEP 8编码规范添加适当的注释和文档字符串编写单元测试确保向后兼容性 立即开始您的微信自动化之旅第一步快速入门安装wxautopip install wxauto运行基础示例代码测试基本功能是否正常第二步构建您的第一个自动化脚本从简单的定时消息发送开始逐步增加复杂度from wxauto import WeChat import schedule import time wx WeChat() def send_daily_reminder(): wx.SendMsg(记得完成今日任务哦, 自己) # 设置定时任务 schedule.every().day.at(09:00).do(send_daily_reminder) schedule.every().day.at(18:00).do(send_daily_reminder) while True: schedule.run_pending() time.sleep(60)第三步探索高级功能尝试消息监听和自动回复实现文件批量发送构建智能客服系统开发聊天记录分析工具重要注意事项遵守使用规范仅用于合法的自动化需求尊重隐私不要用于侵犯他人隐私的用途合理使用控制操作频率避免滥用定期更新关注项目更新及时升级版本wxauto为Windows微信客户端自动化提供了强大而灵活的工具集。无论您是个人开发者想要提升工作效率还是企业需要构建自动化工作流wxauto都能为您提供可靠的解决方案。立即开始使用释放您的生产力让微信自动化成为您工作中的得力助手【免费下载链接】wxautoWindows版本微信客户端非网页版自动化可实现简单的发送、接收微信消息简单微信机器人项目地址: https://gitcode.com/gh_mirrors/wx/wxauto创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

FastBee物联网平台环境配置:Redis与Node.js安装部署实战指南

FastBee物联网平台环境配置:Redis与Node.js安装部署实战指南

在物联网平台部署过程中,环境配置往往是第一个拦路虎。最近在部署FastBee物联网平台时,发现Redis和Node.js的环境配置环节存在不少细节问题,网上资料要么过于简单要么版本过时。本文将通过完整实战演示,带你一步步搞定这两个核心组…

2026/10/5 1:18:27 阅读更多 →
Zorin OS 18.1:Windows应用兼容性与Linux迁移指南

Zorin OS 18.1:Windows应用兼容性与Linux迁移指南

1. Zorin OS 18.1的核心升级解析 Zorin OS 18.1作为这个基于Ubuntu的Linux发行版的最新迭代版本,最引人注目的改进莫过于其对Windows应用程序识别库的大幅扩容。根据官方数据,这个识别库的规模增加了40%,现在能够识别超过240款常见的Windows应…

2026/10/12 4:45:03 阅读更多 →
Nexus Mods App:告别游戏模组管理烦恼,3大核心功能让你轻松玩转100+插件

Nexus Mods App:告别游戏模组管理烦恼,3大核心功能让你轻松玩转100+插件

Nexus Mods App:告别游戏模组管理烦恼,3大核心功能让你轻松玩转100插件 【免费下载链接】NexusMods.App Home of the development of the Nexus Mods App 项目地址: https://gitcode.com/gh_mirrors/ne/NexusMods.App 你是否曾经为了安装一个游戏…

2026/10/12 14:12:08 阅读更多 →

最新新闻

【仓颉语言入门 · 第二篇 第 3 课】

【仓颉语言入门 · 第二篇 第 3 课】

【仓颉语言入门 第二篇 第 3 课】命令行参数解析:让程序听懂命令(std.argopt) 上一课结尾说过:我们的程序一直是"哑巴"——所有输入要么写死在代码里,要么靠改文件。真实世界的工具第一件事就是听懂命令行&…

2026/10/13 15:06:39 阅读更多 →
摄像头采集核心与 D3D11 渲染集成说明

摄像头采集核心与 D3D11 渲染集成说明

1. 工程关系 04_Camera_D3D11_Preview 没有复制摄像头采集代码,也没有引用外部摄像头仓库。 它复用同一 AV_Atomic_Playground 工程中 02_Video_Capture 提供的 video_capture_core 静态库。 02_Video_Capture └── video_capture_core├── media_foundation_capture.cp…

2026/10/13 15:06:39 阅读更多 →
星哥带你玩飞牛NAS-36:给NAS装个老游戏ROM ,浏览器直接开玩

星哥带你玩飞牛NAS-36:给NAS装个老游戏ROM ,浏览器直接开玩

星哥带你玩飞牛NAS-36:给NAS装个老游戏ROM ,浏览器直接开玩 导读: 谁的硬盘里没存过几个 GBA、FC 的 ROM 呢?文件堆了一堆,封面没几张,每次想玩都得翻半天目录。今天介绍一个开源项目 RomM,把 …

2026/10/13 15:06:39 阅读更多 →
Windows进程管理实战:任务管理器操作与API原理全解析

Windows进程管理实战:任务管理器操作与API原理全解析

简介:这份实验指导文档围绕 Windows 任务管理器的进程管理展开,适合操作系统课程实验教学、期末复习或自学巩固。文档取材自经典实验教材,以“背景知识—实验目的—工具/准备—实验内容与步骤—知识点”为主线,先介绍任务管理器“…

2026/10/13 15:06:39 阅读更多 →
毫米波混合预编码信道估计:稀疏建模与OMP工程落地指南

毫米波混合预编码信道估计:稀疏建模与OMP工程落地指南

简介:rar压缩包(10KB,共5个文件)内含毫米波大规模MIMO系统在混合预编码架构下的超级分辨率信道估计MATLAB实现,面向通信工程与信号处理方向的研究生,以及从事5G/6G物理层算法开发的工程师。包内以.m源码为主…

2026/10/13 15:06:39 阅读更多 →
FPGA JPEG编码器Verilog源码解析与工程落地

FPGA JPEG编码器Verilog源码解析与工程落地

简介:一份基于 Verilog 语言在 FPGA 平台上实现 JPEG 编码器的完整源代码工程,面向数字 IC、FPGA 开发者和图像处理方向学生,覆盖颜色空间转换、88 块划分、离散余弦变换(DCT)、量化与哈夫曼熵编码等硬件实现要点&…

2026/10/13 15:05:35 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →