Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Web to Markdown

将网页内容下载并转换为 Markdown 格式,自动下载图片到本地

支持 微信公众号文章 下载,图文完整保存,离线阅读无忧

功能特点安装使用方法输出示例English


功能特点

  • 智能内容提取 — 自动识别主要内容区域(articlemain.content 等语义标签)
  • 保守广告过滤 — 仅移除明确的广告和追踪元素,保留页面原始结构
  • 图片本地化
    • 下载所有图片到本地 images/ 目录
    • 支持懒加载图片(data-srcdata-original 属性)
    • 支持多种格式(JPG、PNG、GIF、WebP、SVG)
    • 自动去重和文件名冲突处理
  • 多编码支持 — UTF-8、GBK、GB18030、Big5 等中英文编码自动检测
  • 表格保留 — HTML 表格完整转换为 Markdown 格式
  • 链接处理 — 相对 URL 自动转换为绝对 URL

安装

1. 安装 Skill

web-to-markdown 目录复制到 Claude Code 的 skills 目录:

cp -r web-to-markdown ~/.claude/skills/

2. 安装 Python 依赖

pip install requests beautifulsoup4 html2text

# 可选:更准确的编码检测
pip install chardet

使用方法

下载微信公众号文章

/web-to-markdown https://mp.weixin.qq.com/s/xxxxxx

下载普通网页

/web-to-markdown https://example.com/article

指定输出目录

/web-to-markdown https://mp.weixin.qq.com/s/xxxxxx -o ./wechat-articles

指定输出文件名

/web-to-markdown https://example.com/article -o ./docs -f readme.md

自然语言触发

Claude 会自动识别以下意图并执行转换:

用户输入 Claude 操作
"下载这篇微信公众号文章: https://mp.weixin.qq.com/s/..." 完整保存微信文章及图片
"帮我把这个网页保存为 markdown: https://..." 识别意图后执行转换
"下载这篇文章" + URL 下载并转换为 Markdown
"保存这个网页内容" + URL 保存网页内容到本地

输出示例

转换完成后,Markdown 文件格式如下:

# 文章标题

**来源**: https://mp.weixin.qq.com/s/xxxxxx

**图片保存位置**: `./images/`

---

正文内容...

![本地图片](images/photo1.jpg)

更多内容...

工作原理

URL 输入
  │
  ▼
┌──────────────┐
│  获取网页内容   │  ← 模拟浏览器 User-Agent
│  检测编码      │  ← HTTP headers + chardet 多级回退
└──────┬───────┘
       │
       ▼
┌──────────────┐
│  提取主要内容   │  ← article / main / .content 语义选择器
│  过滤广告元素   │  ← 仅移除明确的广告和追踪元素
└──────┬───────┘
       │
       ▼
┌──────────────┐
│  处理图片      │  ← 下载到本地 images/ 目录
│  更新引用路径   │  ← 支持懒加载、自动去重
└──────┬───────┘
       │
       ▼
┌──────────────┐
│  HTML → MD    │  ← html2text 转换
│  添加元信息头   │  ← 标题、来源、图片路径
└──────┬───────┘
       │
       ▼
  输出 .md 文件

项目结构

web-to-markdown/
├── SKILL.md                        # Skill 定义文件
└── scripts/
    └── web_to_markdown.py          # 核心转换脚本

依赖

包名 必需 说明
requests HTTP 请求
beautifulsoup4 HTML 解析
html2text HTML 转 Markdown
chardet 编码检测(提高准确性)

错误处理

错误类型 处理方式
网络错误 提示用户检查 URL 是否可访问
编码错误 多编码自动回退(UTF-8 → GBK → GB18030 → Big5 → ISO-8859-1)
权限错误 检查输出目录是否可写
依赖缺失 自动安装缺少的 Python 包

许可证

MIT License

About

将网页下载并转换为 Markdown 格式,自动下载图片到本地。支持将微信公众号文章内容本地保存。

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages