Article Fetcher v1.0.1
抓取微信公众号、小红书、豆瓣、知乎文章,自动上传 OSS 图床,LLM 智能关键词提取,一键存档到 Notion。
快速开始
1. 安装依赖
pip install -r requirements.txt
2. 配置环境变量(~/.openclaw/.env)
# 必需:OSS 图床
ALIYUN_OSS_AK=your_ak
ALIYUN_OSS_SK=your_sk
ALIYUN_OSS_BUCKET_ID=your_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
3. 使用
cd <skill-dir>
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注册