将文章正文抓取为 Markdown,并按需要写入飞书文档供用户验收。
uv
venv + pip
app_id / app_secret。
在真正抓取前,先检查当前环境是否具备 Python。不要假设系统一定有 python 别名;统一先跑 wrapper:
bash ~/.openclaw/skills/scrapling-article-fetch/scripts/run_pipeline.sh
这个 wrapper 会优先选 python3,其次 python,避免再次出现“环境有 Python,但入口命令写死导致误判”的问题。
执行规则:
python_ok=true:继续执行抓取。
uv 但有可用 Python:可以继续,只是改用 venv + pip 方案。
在受管控 Python 环境中,优先使用 uv:
uv run --with 'scrapling[fetchers]' --with html2text python ~/.openclaw/skills/scrapling-article-fetch/scripts/scrapling_fetch.py <url> [max_chars]
默认 max_chars=30000。
当需要把抓取结果写入飞书文档时,默认仍使用 md_to_feishu_doc.py,但不要让模型自由手写标题字符串。
推荐调用方式:
python3 ~/.openclaw/skills/scrapling-article-fetch/scripts/md_to_feishu_doc.py <article_json_or_title> <src_url> <markdown_file> [doc_id] [user_open_id]
说明:
scrapling_fetch.py --json 产出的 .json 文件路径。
.json 文件路径,让写文档脚本直接读取其中的 title 字段;不要让模型自己概括标题。
user_open_id 建议传当前用户 open_id,脚本会自动补编辑权限。
doc_id 可选;传入时表示覆盖更新已有文档,不传则新建文档。
脚本必须按以下逻辑执行:
Fetcher.get() 拉取页面 HTML。
mp.weixin.qq.com),优先尝试:
#js_content
.rich_media_content
.rich_media_area_primary
article
main
.post-content
[class*="body"]
html2text 转为 Markdown。
max_chars 截断。
当用户让你抓取公众号/文章时,默认执行以下流程,不需要额外确认:
uv 或 venv + pip
md_to_feishu_doc.py,并把抓取生成的 .json 文件路径作为第 1 个参数传入,按当前 agent 身份创建并写入飞书文档
当当前渠道不是飞书时,直接使用脚本生成代码块回复:
python3 ~/.openclaw/skills/scrapling-article-fetch/scripts/render_markdown_reply.py <title> <url> <markdown_file>
如果当前机器没有 python3 但有 python,则改用 python。实际执行时优先复用前面 wrapper 已选出的解释器,不要手写死。
输出格式固定为:
原文链接:
<完整 Markdown 正文>
不要再额外创建飞书文档,也不要只回一个链接。
仅当用户明确说“不要写飞书文档”时,才只返回文本。
共 1 个版本