- 新增 skill: lyxy-reader-html,用于解析 HTML 文件和 URL 网页内容 - 支持 URL 下载(pyppeteer → selenium → httpx → urllib 优先级回退) - 支持 HTML 解析(trafilatura → domscribe → MarkItDown → html2text 优先级回退) - 支持查询功能:全文提取、字数统计、行数统计、标题提取、章节提取、正则搜索 - 新增 spec: html-document-parsing - 归档 change: create-lyxy-reader-html-skill
69 lines
2.9 KiB
Markdown
69 lines
2.9 KiB
Markdown
# 解析器说明和依赖安装
|
||
|
||
## 多策略解析降级
|
||
|
||
URL 下载器按 pyppeteer → selenium → httpx → urllib 优先级依次尝试;HTML 解析器按 trafilatura → domscribe → MarkItDown → html2text 优先级依次尝试。前一个失败自动回退到下一个。
|
||
|
||
详细的优先级和对比请查阅 `scripts/README.md`。
|
||
|
||
## 依赖安装
|
||
|
||
### 使用 uv(推荐)
|
||
|
||
```bash
|
||
# 完整安装(所有下载器和解析器)
|
||
uv run --with trafilatura --with domscribe --with markitdown --with html2text --with httpx --with pyppeteer --with selenium --with beautifulsoup4 scripts/parser.py https://example.com
|
||
|
||
# 轻量安装(仅 httpx + html2text)
|
||
uv run --with html2text --with beautifulsoup4 scripts/parser.py https://example.com
|
||
```
|
||
|
||
> **说明**:以上为推荐安装命令,包含所有组件以获得最佳兼容性。详细的优先级和对比请查阅 `scripts/README.md`。
|
||
|
||
## 下载器对比
|
||
|
||
| 下载器 | 优点 | 缺点 | 适用场景 |
|
||
|--------|------|------|---------|
|
||
| **pyppeteer** | 支持 JS 渲染;现代网页兼容性好 | 依赖重;首次需下载 Chromium | 需要 JS 渲染的现代网页 |
|
||
| **selenium** | 支持 JS 渲染;成熟稳定 | 需配置 Chromium driver 和 binary | 需要 JS 渲染的现代网页 |
|
||
| **httpx** | 轻量快速;现代 HTTP 客户端 | 不支持 JS 渲染 | 静态网页;快速下载 |
|
||
| **urllib** | Python 标准库;无需安装 | 不支持 JS 渲染 | 静态网页;兜底方案 |
|
||
|
||
## 解析器对比
|
||
|
||
| 解析器 | 优点 | 缺点 | 适用场景 |
|
||
|--------|------|------|---------|
|
||
| **trafilatura** | 专门用于网页正文提取;输出质量高 | 可能无法提取某些页面 | 大多数网页正文提取 |
|
||
| **domscribe** | 专注内容提取 | 相对较新 | 网页内容提取 |
|
||
| **MarkItDown** | 微软官方;格式规范 | 输出较简洁 | 标准格式转换 |
|
||
| **html2text** | 经典库;兼容性好 | 作为兜底方案 | 兜底解析 |
|
||
|
||
## 能力说明
|
||
|
||
### 1. URL / HTML 文件输入
|
||
支持两种输入方式:
|
||
- URL:自动下载网页内容(支持 JS 渲染)
|
||
- 本地 HTML 文件:直接读取并解析
|
||
|
||
### 2. 全文转换为 Markdown
|
||
将完整 HTML 解析为 Markdown 格式,移除图片但保留文本格式(标题、列表、表格、粗体、斜体等)。
|
||
|
||
### 3. HTML 预处理清理
|
||
解析前自动清理 HTML:
|
||
- 移除 script/style/link/svg 标签
|
||
- 移除 href/src/srcset/action 等 URL 属性
|
||
- 移除 style 属性
|
||
|
||
### 4. 获取文档元信息
|
||
- 字数统计(`-c` 参数)
|
||
- 行数统计(`-l` 参数)
|
||
|
||
### 5. 标题列表提取
|
||
提取文档中所有 1-6 级标题(`-t` 参数),按原始层级关系返回。
|
||
|
||
### 6. 指定章节内容提取
|
||
根据标题名称提取特定章节的完整内容(`-tc` 参数),包含上级标题链和所有下级内容。
|
||
|
||
### 7. 正则表达式搜索
|
||
在文档中搜索关键词或模式(`-s` 参数),支持自定义上下文行数(`-n` 参数,默认 2 行)。
|