提取一个新闻网页并保存为Markdown文件

openclaw OpenClaw博客 2

需要先说明,“OpenClaw” 可能指代不同的工具,最常见的是由 OpenBMB 开源的一系列大模型应用工具,特别是 提取工具,本指南主要针对这个用途。

提取一个新闻网页并保存为Markdown文件-第1张图片-OpenClaw 中文站-AI龙虾中文社区

它通常是一个命令行工具Python库,用于将任意网页的HTML内容,智能地提取并转换为结构化的Markdown格式,非常适合用于构建大模型的优质文本语料或进行网页内容分析。


核心概念

OpenClaw 的核心是使用一个经过微调的大型语言模型(如 LlamaQwen),作为“解析器”来理解网页的HTML结构,并判断哪些是主要内容(如文章正文),哪些是噪音(如导航栏、广告、页脚),然后输出干净的文本。

安装与准备

前提条件:

  • Python 3.8 或更高版本
  • 推荐使用虚拟环境
  • 需要能访问 Hugging Face 模型仓库(可能需要配置访问Token)

安装步骤:

  1. 克隆仓库 (如果从源码安装):

    git clone https://github.com/OpenBMB/OpenClaw.git
    cd OpenClaw
  2. 使用 pip 安装 (最简单的方式):

    pip install open-web-parser
    # 或者,如果从本地源码安装
    pip install -e .
  3. 下载模型: OpenClaw 依赖一个核心的解析模型,你需要下载官方提供的模型权重。

    • 模型通常发布在 Hugging Face Hub 上,OpenBMB/OpenClaw-7B
    • 如果你有 huggingface-hub 库,可以直接用代码下载,更常见的是在第一次运行时,工具会自动下载(需要网络通畅,且可能需要登录HF)。

基本使用方法

作为命令行工具

安装后,你通常会获得一个名为 openclaw 或类似的可执行命令。

基本命令格式:

openclaw --url <目标网页URL> [选项]

常用选项/参数:

  • --url-u: 指定要抓取的网页地址。(必需
  • --output-o: 指定输出文件路径(如 ./output.md),如果不指定,结果会打印到控制台。
  • --model-path-m: 指定本地模型权重文件的路径,如果不指定,会尝试从网络下载默认模型。
  • --html: 提供本地的HTML文件路径,而不是URL(如 --html ./page.html)。
  • --max-length: 模型处理的最大文本长度(token数),默认为 4096。

示例:

# 使用本地模型
openclaw --url "https://blog.example.com" --model-path ./models/openclaw-7b --output ./blog.md
# 处理本地保存的HTML文件
openclaw --html ./saved_page.html --output ./content.md

作为 Python 库使用

在你的Python脚本中,可以更灵活地调用OpenClaw。

基本代码示例:

from open_web_parser import OpenWebParser
# 1. 初始化解析器
# 首次运行会下载模型,可能需要较长时间和足够的磁盘空间
parser = OpenWebParser()
# 2. 解析网页
result = parser.parse(
    url="https://example.com/news/article123.html",
    # 或者使用 html=html_content (字符串) 或 html_file="./page.html"
)
# 3. 获取结果
# result 是一个字典,包含提取的内容
if result:
    markdown_content = result.get("markdown", "")= result.get("title", "")
    print(f"标题: {title}")
    print(f"Markdown内容预览:\n{markdown_content[:500]}...") # 打印前500个字符
    # 保存到文件
    with open("output.md", "w", encoding="utf-8") as f:
        f.write(f"# {title}\n\n{markdown_content}")
else:
    print("解析失败。")

进阶用法:

  • 批量处理: 循环读取URL列表,依次解析。
  • 集成到数据流水线: 与Scrapy、requests等库结合,先抓取网页,再用OpenClaw清洗。
  • 自定义模型: 通过 model_name_or_path 参数指定自己微调的模型。

配置文件

高级用户可以通过配置文件来设置默认模型、处理参数等,配置文件通常是 config.yamlconfig.json

# config.yaml 示例
model:
  name_or_path: "OpenBMB/OpenClaw-7B"
  device: "cuda" # 或 "cpu"
  max_length: 4096
processing:
  timeout: 30
  user_agent: "Mozilla/5.0 ..."

在代码中加载配置:

from open_web_parser import OpenWebParser, load_config
config = load_config("./config.yaml")
parser = OpenWebParser(**config)

注意事项与常见问题

  1. 模型下载: 基础模型(7B参数)约需14GB存储空间,确保磁盘充足,下载时网络稳定,国内用户可能需要配置镜像源或使用科学上网。
  2. 硬件要求
    • CPU模式: 可以运行但速度较慢,内存消耗大。
    • GPU模式(推荐): 需要足够的GPU显存(7B模型需要约16GB显存),消费级显卡(如RTX 3090/4090)可以胜任,可以使用 device_map="auto"device="cuda:0" 参数启用GPU。
  3. 处理速度: 受模型推理速度限制,比传统规则提取(如 readabilitynewspaper3k)慢,但准确度和泛化能力通常更好,尤其对复杂、非标准的网页。
  4. 错误处理
    • 网络错误: 检查URL是否可访问,或使用本地HTML模式。
    • 模型加载失败: 检查模型路径是否正确,HF Token是否有权限。
    • 内容过长: 如果网页内容超过 max_length,输出可能会被截断,可以适当调大此值,但需考虑显存限制。
  5. 结果评估: 始终检查输出结果,虽然OpenClaw很强大,但对于某些设计极其特殊的网页,仍可能无法完美提取,可以结合传统方法作为备选方案。

最佳实践

  1. 先测试: 在处理大批量网页前,先用几个不同类型(新闻、博客、电商、文档)的网页测试效果。
  2. 设置超时和重试: 在批量处理脚本中,对网络请求和模型解析设置超时和异常重试机制。
  3. 缓存HTML: 对于大规模抓取,建议先使用 requestsscrapy 将原始HTML保存到本地或数据库,然后再用OpenClaw离线处理,避免重复下载。
  4. 关注合规性: 遵守目标网站的 robots.txt 协议和相关法律法规,尊重版权和隐私。

OpenClaw 是一个强大的、基于AI的网页内容提取工具,其核心优势在于利用大模型的理解能力来获得更精准、更通用的提取效果。

基本工作流:

安装OpenClaw -> 下载模型 -> 提供URL/HTML -> 模型智能解析 -> 获得结构化Markdown

对于希望为LLM构建高质量网页文本数据集,或需要高精度提取网页核心内容的开发者和研究者来说,OpenClaw是一个非常值得尝试的工具。

标签: 关键词生成 保存新闻网页为Markdown文件

上一篇1.基础概念

下一篇基础安装

抱歉,评论功能暂时关闭!