WorkBuddy 是轻量级可嵌入Python工作流协作者,专替人肉脚本;其 web.fill_and_submit() 直接构造请求绕过前端检测;Task 提供带状态快照的可靠调度;excel.load_table 支持列名/索引映射防字段错配;需用 fs.wait_until_exists 确保文件真正就绪。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

WorkBuddy 不是另一个“自动化平台”,它本质是一个轻量级、可嵌入的 Python 工作流协作者,专为替代手动复制粘贴、跨系统切换、定时查数据这类「人肉脚本」场景而生。如果你正用 Excel 拷来拷去、用浏览器反复点查订单状态、或写一堆 time.sleep() 硬等接口响应——WorkBuddy 能直接接管这些环节,且不强制你重构整个系统。
怎么让 WorkBuddy 自动填表并提交网页表单
核心是绕过前端框架检测,而不是模拟点击。WorkBuddy 内置的 web.fill_and_submit() 不走 Selenium,而是解析 HTML 表单结构,拼装 application/x-www-form-urlencoded 或 multipart/form-data 请求体,直接 POST 到 action 地址。
实操建议:
- 先用浏览器开发者工具定位表单的
action属性和所有input[name]字段名,别依赖可见控件顺序 - 如果目标页面有 CSRF token,需先调用
web.get_page()提取meta[name="csrf-token"]或隐藏 input 的 value,再传给fill_and_submit(csrf=...) - 遇到
403 Forbidden但 headers 看似正常?大概率是服务端校验了Origin或Referer,用headers={"Origin": "https://example.com", "Referer": "https://example.com/form"}显式补全
为什么用 workbuddy.Task 而不是写个 while True + sleep
手动轮询不仅浪费资源,更难处理异常漂移:网络抖动导致某次请求失败,下次执行时间就偏移;任务中途崩溃,没人重启;日志散落在终端里无法追溯。
使用 draw.io(.drawio 格式)和 SVG 生成兼容 Microsoft Visio 的架构图。当用户需要以下任一场景时触发: - 用于 Visio 或技术文档的架构/系统/网络图 - 带连接标注的分层控制系统图 - 将 draw.io XML 转换为稳定、可嵌入的 SVG - 修复 Visio 或 draw.io 无法打开的故障排查类图表 - 任何需专业级布局且文本可编辑的图表
Task 提供的是带状态快照的可靠调度:
- 每次执行前自动记录上一次完成时间、返回值、异常 traceback 到本地
.workbuddy/tasks/目录,路径含任务名哈希,避免冲突 - 支持
retry_on=(requests.Timeout, httpx.HTTPStatusError),失败后按指数退避重试,不是无脑重来 - 若任务函数返回
False或抛出SkipExecution异常,本次不记为失败,也不触发告警——适合做「有更新才处理」类逻辑
Excel 数据同步到数据库时字段对不上怎么办
WorkBuddy 默认按表头文字匹配列,但 Excel 里常有空格、括号、中英文冒号混用(如 "客户名称" vs "客户名称(最新)"),直接映射会漏字段。
解决方法很直白:
- 用
excel.load_table("data.xlsx", header_row=1, column_map={"客户名称(最新)": "customer_name"})手动建立别名映射 - 如果表头不固定,改用
column_index_map={0: "order_id", 2: "amount"}按位置绑定,比字符串匹配更稳 - 注意
excel.write_table()写入时默认不覆盖原文件,而是生成data_20240521_1423.xlsx带时间戳的新文件——这是防误操作,不是 bug
WorkBuddy 的复杂点不在 API 多难记,而在你得先厘清「哪部分真需要自动化」。比如导出报表后发邮件,重点不是封装 SMTP,而是判断「导出完成」这个事件是否被上游系统真正释放——很多失败都卡在以为文件已写完,其实 Excel 还在后台刷样式。这种边界,得靠 fs.wait_until_exists("report.xlsx", timeout=60) 加真实等待,而不是信文档里写的「导出即完成」。

















