有哪些可提取网页正文主体HTML与文本的JavaScript库或API?
网页正文提取JS方案整理
开源JavaScript库
都是可以直接集成到项目里的本地库,不需要调用远程服务,能同时输出清洗后的正文HTML和纯文本,自动过滤导航栏、侧边栏、广告、页脚等非核心内容:
@mozilla/readability:火狐浏览器自带阅读模式的核心依赖,是目前JS生态里准确率最稳的正文提取实现,兼容浏览器和Node.js环境。浏览器端直接传入当前页的document对象即可,Node端配合jsdom构造DOM对象就能用,返回结果包含完整保留原有结构的正文HTML、剥离格式的纯文本,还能顺带识别出文章标题、作者、发布时间、摘要等元信息,遇到特殊站点也支持自定义过滤规则调整提取结果。@postlight/mercury-parser:对新闻、博客类内容站点做了专门优化,输出结构非常规整,支持浏览器、Node双端运行,除了正文内容外还能提取主图、站点名称、文章字数等附加信息,对排版规范的内容站点识别率极高。node-readability:基于Readability做的Node端封装,不需要手动配置jsdom环境,直接传入网页URL或者原始HTML字符串就能调用,适合后端批量处理页面的场景,提取时会完整保留正文里的段落、标题、列表、图片、表格等有用标签,不会破坏原有的内容结构。trafilaturaJS移植版:原版是Python生态里公认对杂乱站点、论坛、小众博客提取效果最好的库,JS版完整移植了核心提取逻辑,对非标准排版的页面识别率比Readability高,纯文本输出会自动保留段落层级,适合后续做文本分析的场景。
第三方REST API方案
如果不想自己维护提取规则、需要处理大量异构站点或者JS动态渲染的页面,可以直接用现成的API服务:
- 通用正文提取类服务:只需要传入目标网页URL,服务端会自动处理页面渲染、内容清洗,返回结果里直接带清洗后的正文HTML、纯文本,以及各类文章元信息,对接只需要发简单的HTTP请求,返回JSON格式数据,不需要自己处理页面爬取、DOM解析的逻辑。
- 带正文提取能力的网页抓取服务:这类服务本身解决了反爬、动态渲染的问题,内置的正文提取模块可以直接输出过滤完无关元素的核心内容,适合大规模批量采集分析的场景。
选型参考:如果是在用户浏览器端运行提取逻辑,优先选
@mozilla/readability,包体积小、运行速度快,没有额外依赖;如果是Node端做批量处理,优先试trafilaturaJS版,对复杂页面的适配更好;如果需要覆盖的站点类型杂、不想花时间适配特殊页面规则,再选REST API方案,能省掉大量维护成本。
内容的提问来源于stack exchange,提问作者Volatil3
相关产品推荐
相关产品推荐

