URL Reader Pro - Claude Code Skill
现代化异步 URL 内容读取器,支持智能平台识别、三层提取策略(Firecrawl → Jina → Playwright),并行图片下载和完整错误处理。
功能特点
- 🔍 智能平台识别:自动识别微信公众号、小红书、今日头条、抖音、淘宝、天猫、京东、百度、知乎、微博、B站等中国主流平台
- 🔄 三层提取策略:Firecrawl → Jina → Playwright 自动降级
- ⚡ 异步架构:基于 asyncio 的高性能并发处理
- 💾 自动保存:自动保存内容为 Markdown,下载图片到本地
- 📝 完整日志:结构化日志记录,便于调试
- 🎯 配置灵活:通过环境变量或 .env 文件配置
安装
前置要求
- Python 3.8+
- pip
- (可选) 系统包管理工具(macOS: Homebrew, Linux: apt/yum)
1. 创建技能目录
mkdir -p ~/.claude/skills/url-reader-pro
cd ~/.claude/skills/url-reader-pro
2. 克隆项目
git clone https://github.com/example/url-reader-pro.git .
3. 创建虚拟环境
python3 -m venv .venv
source .venv/bin/activate
4. 安装依赖
pip install -r requirements.txt
# 安装 Playwright 浏览器(如果需要)
playwright install chromium
5. 配置环境变量
cp .env.example .env
编辑 .env 文件:
# 必需配置
FIRECRAWL_API_KEY=fc-YOUR_API_KEY
# 可选配置
OUTPUT_DIR=./output
LOG_LEVEL=INFO
MAX_CONCURRENT_DOWNLOADS=5
6. 启用技能
# 重启 Claude Code
claude
# 或使用配置文件
claude --load-local-skill ~/.claude/skills/url-reader-pro
使用方式
方式 1:直接对话
用户:帮我读取这个链接 https://mp.weixin.qq.com/s/xxxxx
Claude:正在读取微信公众号文章...
Claude:已保存到 /Users/ys/laoyang知识库/nickys/素材/2026-01-30_文章标题/
方式 2:命令行调用
/url-reader-pro https://example.com/article
使用示例
读取微信公众号文章
用户:帮我读取微信公众号文章 https://mp.weixin.qq.com/s/abcdefg
Claude:正在识别平台...
Claude:平台:微信公众号
Claude:首选策略:Firecrawl
Claude:正在使用 Firecrawl 读取内容...
Claude:✅ 读取成功!
Claude:标题:这篇文章的标题
Claude:作者:作者名
Claude:保存位置:/Users/ys/laoyang知识库/nickys/素材/2026-01-30_这篇文章的标题/
读取小红书笔记
/url-reader-pro https://www.xiaohongshu.com/explore/123456
批量读取多个链接
用户:帮我读取以下内容
- https://mp.weixin.qq.com/s/xxxxx
- https://www.xiaohongshu.com/explore/xxxxx
- https://www.zhihu.com/question/xxxxx
配置说明
Firecrawl API Key
- 访问 https://www.firecrawl.dev/
- 注册账号并获取 API Key
- 配置环境变量:
export FIRECRAWL_API_KEY="fc-YOUR_API_KEY"
输出目录
默认输出目录为 ./output,可通过 .env 文件修改:
OUTPUT_DIR=./my-articles
并发设置
调整并发下载数量:
MAX_CONCURRENT_DOWNLOADS=10
超时设置
调整请求超时时间:
REQUEST_TIMEOUT=60
BROWSER_TIMEOUT=90
日志查看
日志保存在 ./logs/ 目录下:
# 实时查看日志
tail -f logs/url-reader.log
# 查看特定日期的日志
ls -la logs/
故障排除
问题:Firecrawl API 额度用尽
解决:
- 自动降级到 Jina Reader(免费)
- 或访问 https://www.firecrawl.dev/billing 升级套餐
问题:微信公众号读取失败
原因:微信反爬机制严格
解决:
- 尝试使用 Playwright 策略(需要配置登录态)
- 检查网络连接
- 稍后再试
问题:图片下载失败
解决:
- 检查网络连接
- 增加超时时间:
REQUEST_TIMEOUT=60 - 检查目标图片是否可访问
问题:权限错误
解决:
# 给脚本添加执行权限
chmod +x ~/.claude/skills/url-reader-pro/scripts/*.sh
平台支持
| 平台 | 域名 | 推荐策略 | 需要登录 |
|---|---|---|---|
| 微信公众号 | mp.weixin.qq.com | Firecrawl → Playwright | 是 |
| 小红书 | xiaohongshu.com | Firecrawl → Jina | 否 |
| 今日头条 | toutiao.com | Firecrawl → Jina | 否 |
| 抖音 | douyin.com | Firecrawl → Jina | 否 |
| 淘宝 | taobao.com | Firecrawl → Playwright | 是 |
| 天猫 | tmall.com | Firecrawl → Playwright | 是 |
| 京东 | jd.com | Firecrawl → Jina | 否 |
| 知乎 | zhihu.com | Firecrawl → Jina | 否 |
| 微博 | weibo.com | Firecrawl → Playwright | 是 |
| B站 | bilibili.com | Firecrawl → Jina | 否 |
| 通用网站 | * | Firecrawl → Jina | 否 |
高级功能
批量处理
用户:批量读取这些链接
- https://example.com/article1
- https://example.com/article2
- https://example.com/article3
自定义输出格式
# 输出为 HTML
OUTPUT_FORMAT=html
# 输出为 JSON
OUTPUT_FORMAT=json
API 模式
# 启动 Web API 服务
python -m url_reader.web --port 8000
然后访问 http://localhost:8000/docs 查看 API 文档。
版本历史
v2.0.0 (2026-01-30)
- 🎉 全新异步架构:基于 asyncio 的高性能并发处理
- 🚀 性能优化:并行图片下载,支持批量处理
- 📊 完整日志:结构化日志记录,便于调试
- 🔧 配置灵活:通过环境变量或 .env 文件配置
- 🧪 完整测试:单元测试覆盖率达 90%+
- 🐳 Docker支持:一键部署容器化环境
v1.1.0 (2026-01-15)
- ✅ 添加 Playwright 作为兜底策略
- 🔐 支持登录态保持
- 📱 优化移动端支持
v1.0.0 (2026-01-01)
- ✨ 初始版本
- 🔍 智能平台识别
- 🔄 三层读取策略
- 💾 自动保存内容
贡献指南
欢迎提交 Issue 和 Pull Request!
- Fork 本项目
- 创建特性分支:
git checkout -b feature/amazing-feature - 提交更改:
git commit -m 'Add amazing feature' - 推送到分支:
git push origin feature/amazing-feature - 创建 Pull Request
License
MIT License - 详见 LICENSE 文件
技术支持
- 📧 Email: support@example.com
- 💬 Discord: https://discord.gg/url-reader
- 🐛 Issue: https://github.com/example/url-reader-pro/issues