Article Fetcher v1.0.1 抓取微信公众号、小红书、豆瓣、知乎文章,自动上传 OSS 图床,LLM 智能关键词提取,一键存档到 Notion。
快速开始
- 安装依赖 pip install -r requirements.txt
- 配置环境变量(~/.openclaw/.env)
# 必需:OSS 图床
ALIYUN_OSS_AK=你的_ak
ALIYUN_OSS_SK=你的_sk
ALIYUN_OSS_BUCKET_ID=你的_bucket
ALIYUN_OSS_ENDPOINT=oss-cn-shanghai.aliyuncs.com
# 必需:Notion 存档
NOTION_API_KEY=secret_xxx
NOTION_ARTICLE_DATABASE_ID=database_id
# 可选:LLM 关键词提取(DashScope)
DASHSCOPE_API_KEY=sk-xxx
DASHSCOPE_MODEL=qwen3.5-plus
# 可选:Cookies(反爬,Netscape 格式)
WECHAT_COOKIES_FILE=~/.cookies/wechat_cookies.txt
ZHIHU_COOKIES_FILE=~/.cookies/zhihu_cookies.txt
cd
python3 main.py "文章 URL" [标签1] [标签2]
支持平台:微信公众号 (mp.weixin.qq.com)、小红书 (xiaohongshu.com / xhslink.com)、豆瓣 (douban.com)、知乎 (zhihu.com)
处理流程
URL → 平台识别 → 内容抓取 → 图片上传 OSS → 关键词提取 (LLM → 词频降级) → Notion 存档
Notion 数据库字段
字段 类型 说明
Title title 文章标题(≤200 字符)
Source rich_text 来源平台
Author rich_text 作者
Link url 原文链接
Tags multi_select 自动提取关键词 + 手动标签
PubDate date 发布时间
Words number 字数统计(剔除 HTML)
ts date 存档时间(东八区)
关键说明
Cookies:知乎/微信反爬需配置(Netscape 格式),小红书/豆瓣无需登录
关键词:LLM 优先(DashScope),未配置或失败自动降级本地词频
图片:上传失败不阻断,成功多少记录多少
时间:统一 YYYY-MM-DD HH:MM:SS,缺失时留空(不伪造)
模块:main.py 可作 Python 模块调用:from main import fetch_and_archive_article
安全与隐私
URL 校验:严格白名单匹配 hostname,拒绝路径拼接攻击
Cookie 隔离:Netscape Cookies 按域名过滤,仅附加到匹配的请求
LLM 数据外发:配置 DASHSCOPE_API_KEY 时,文章内容会发送至 DashScope API(仅用于关键词提取)
敏感信息:AK/SK/Key 等仅存储于本地,skill 不会外泄
权限最小化:OSS Bucket 建议仅授予 PutObject/GetObject,Notion Integration 仅授予目标数据库读写权限
依赖锁定:requirements.txt 使用精确版本号,避免供应链风险
扩展平台
fetchers/ 下创建 xxx_fetcher.py,继承 BaseFetcher 实现 fetch_article()
detector/platform_detector.py 的 ALLOWED_HOSTS 添加平台域名
main.py 的 FETCHER_REGISTRY 注册