网页正文抽取
网页里有大量与内容无关的导航、广告、推荐位和页脚,直接转文本会让切片充满噪声。正文抽取工具通过结构与统计特征把主内容块识别出来,输出干净正文,并可附带标题、作者、日期等元数据,适合把网页文章批量整理进知识库。
基本信息
| 输入 | HTML 字符串或已抓取的网页源码 |
|---|---|
| 输出 | 纯文本或带元数据的结构化结果 |
| 常用参数 | 是否包含表格、是否保留注释、输出格式 |
| 适用 | 文章型网页、帮助中心、公告与文档站 |
| 不适用 | 依赖脚本渲染的动态页面(需先渲染) |
从 HTML 字符串抽取
从 HTML 字符串抽取
import trafilatura
html = open("page.html", encoding="utf-8").read()
text = trafilatura.extract(html, include_tables=True, include_comments=False)
print(text[:200])
# 也可抓取 URL(注意抓取目标站点条款)
# html = trafilatura.fetch_url("https://example.com/article")使用要点
- 保留表格开关:技术文档里的参数表往往是关键信息
- 取结构化输出:标题、作者、发布时间可直接写进切片元数据
- 入库前做二次清洗:残留的推荐语与版权声明需要过滤
- 按站点统计抽取质量,个别站点需要单独配置规则
- 抓取遵守目标站点的 robots 与使用条款,控制请求频率
输出与用途
| 输出形式 | 内容 | 用途 |
|---|---|---|
| 纯文本 | 去噪后的正文 | 直接切分入库 |
| 结构化结果 | 正文加标题、作者、日期 | 写入切片元数据 |
| 带表格结果 | 正文加表格文本 | 参数与配置类内容 |
| 元数据 | 语言、站点、抓取时间 | 时效判断与来源标注 |
常见问题
- 正文为空:页面结构特殊或内容由脚本渲染,需换渲染方案
- 内容缺失:原文以图片或附件形式承载,抽取不到
- 表格丢失:默认不保留表格,需显式开启
- 编码问题:非 UTF-8 页面要先正确解码再抽取
输出支持多种格式;结构化结果里带标题、作者、日期等元数据,方便直接写入切片字段,减少后续手工补字段的工作量。
入库前的处理
- 把页面的发布时间与抓取时间一起记录,便于回答时说明时效
- 正文里的相对链接与图片占位文本要清理,否则切片里会混入无效标记
- 同一站点的多个栏目分开展示,便于按来源统计检索命中情况
- 对帮助中心类页面保留标题层级,切片才能带上章节路径