wechat-article-extraction-mp-weixin-qq-com news-webpage-cleaning blog-post-parsing metadata-extraction-title-author-date multiple-output-formats-markdown-json-plain-text batch-processing-support

Polar Sponsor
爱发电 赞助
.NET 9.0

基于三引擎设计,从微信文章、新闻和博客网页提取干净内容,支持标题作者日期元数据,多格式和批量处理。

Web Content Extractor - 网页内容提取器

功能概述

Web Content Extractor - 网页内容提取器是一项面向实际任务的技能,主要用于版本 : 2.0;作者 : OpenClaw Team;

核心要点

  • 更新日期 : 2026-03-15;
  • 许可证 : MIT;
  • 📦 技能元数据;

使用与执行

🎯 功能概述;基于 Readability + Firecrawl + Defuddle 三引擎的网页内容提取工具,专为中文内容优化;支持微信文章、新闻网站、博客等多种来源,自动去除广告/导航/侧边栏。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。

结果检查与注意事项

实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。

Web Content Extractor - 网页内容提取器

版本: 2.0
作者: OpenClaw Team
更新日期: 2026-03-15
许可证: MIT

📦 技能元数据

name: web-content-extractor
version: 2.0.0
description: 从微信文章/博客/新闻网页提取干净内容,去除广告和侧边栏
category: 内容处理
tags: [网页提取,内容清洗,微信文章,Markdown]
author: OpenClaw Team
license: MIT

🎯 功能概述

基于 Readability + Firecrawl + Defuddle 三引擎的网页内容提取工具,专为中文内容优化。支持微信文章、新闻网站、博客等多种来源,自动去除广告/导航/侧边栏,输出干净的 Markdown 格式。

核心能力:

  • ✅ 微信文章提取(mp.weixin.qq.com)
  • ✅ 新闻网页清洗
  • ✅ 博客文章解析
  • ✅ 元数据提取(标题/作者/日期)
  • ✅ 多格式输出(Markdown/JSON/纯文本)
  • ✅ 批量处理支持

🚀 快速开始

基础调用

# OpenClaw 工具调用
result = web_fetch(
    url="https://mp.weixin.qq.com/s/xxx",
    extractMode="markdown",
    maxChars=8000
)

完整参数

参数 类型 必填 默认值 说明
url str ✅ - 网页 URL
extractMode str ❌ "markdown" 输出格式(markdown/text/json)
maxChars int ❌ 8000 最大字符数
includeMetadata bool ❌ true 是否包含元数据
timeout int ❌ 30 超时时间(秒)

📤 输入输出

输入示例

{
  "url": "https://mp.weixin.qq.com/s/abcdefg",
  "extractMode": "markdown",
  "maxChars": 8000,
  "includeMetadata": true
}

输出示例

{
  "success": true,
  "url": "https://mp.weixin.qq.com/s/abcdefg",
  "title": "文章标题",
  "author": "作者名",
  "publishDate": "2026-03-15",
  "content": "Markdown 格式的正文内容...",
  "wordCount": 2500,
  "readTime": "10 分钟",
  "images": ["https://..."],
  "extractTime": 0.8
}

🔧 技术架构

三引擎设计

                    用户请求
                       ↓
              ┌────────────────┐
              │   路由判断层    │
              └────────────────┘
                       ↓
        ┌──────────────┼──────────────┐
        ↓              ↓              ↓
   ┌─────────┐   ┌─────────┐   ┌─────────┐
   │ web_fetch│   │ defuddle│   │ browser │
   │ (快速)  │   │ (专业)  │   │ (兜底)  │
   └─────────┘   └─────────┘   └─────────┘
        ↓              ↓              ↓
              ┌────────────────┐
              │   结果聚合层    │
              └────────────────┘
                       ↓
                  返回用户

引擎对比

引擎 速度 成功率 适用场景
web_fetch <1s 70% 微信文章/通用网页
defuddle <1s 75% 博客/新闻网站
browser 5-10s 90% 复杂 SPA/动态页面

📋 使用场景

场景 1:微信文章提取

result = web_fetch(
    url="https://mp.weixin.qq.com/s/xxx",
    extractMode="markdown"
)
print(result["content"])

场景 2:批量处理

urls = ["url1", "url2", "url3"]
results = [web_fetch(url=u) for u in urls]

场景 3:带元数据提取

result = web_fetch(
    url="https://example.com/article",
    includeMetadata=True
)
print(f"标题:{result['title']}")
print(f"作者:{result['author']}")
print(f"字数:{result['wordCount']}")

⚠️ 限制与注意事项

不支持的场景

  • ❌ 需要登录的页面
  • ❌ 付费墙内容
  • ❌ 验证码保护的页面
  • ❌ 纯 JavaScript 渲染的 SPA(需用 browser 引擎)

速率限制

域名类型 请求间隔 并发限制
微信文章 2 秒 1
新闻网站 1 秒 3
博客 1 秒 5

合规要求

  1. 仅提取公开可访问内容
  2. 尊重 robots.txt 协议
  3. 不用于商业用途(除非获得授权)
  4. 保留原作者署名

🎛️ 高级配置

自定义 User-Agent

result = web_fetch(
    url="https://example.com",
    userAgent="Mozilla/5.0 ..."
)

代理配置

result = web_fetch(
    url="https://example.com",
    proxy="http://proxy:port"
)

缓存控制

# 启用缓存(1 小时)
result = web_fetch(url, cache=True, ttl=3600)

# 强制刷新
result = web_fetch(url, cache=False)

📊 性能指标

指标 数值
平均响应时间 0.8 秒
P95 响应时间 2.5 秒
成功率 85%
缓存命中率 60%

🔍 故障排查

问题 1:提取内容为空

原因:页面需要 JavaScript 渲染
解决:切换到 browser 引擎

问题 2:微信文章提取失败

原因:链接过期或有反爬
解决:

  1. 检查链接是否有效
  2. 尝试 browser 引擎
  3. 手动复制内容

问题 3:提取内容不完整

原因:maxChars 限制
解决:增加 maxChars 参数或分页处理

📚 依赖项

{
  "readability": "^0.4.4",
  "firecrawl": "^1.0.0",
  "defuddle": "^3.0.0"
}

🤝 贡献指南

  1. Fork 本仓库
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

📄 许可证

MIT License - 详见 LICENSE

📞 支持

  • 文档: https://docs.openclaw.ai/skills/web-content-extractor
  • 问题反馈: https://github.com/openclaw/openclaw/issues
  • 社区: https://discord.com/invite/clawd

最后更新: 2026-03-15
维护状态: ✅ 活跃维护

相关专题

更多
js实现base64编码
js实现base64编码

在JavaScript中实现Base64编码,最直接的方式是使用内置的btoa()函数。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2025.10.24

379

9

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

2025.09.10

2179

7

html中如何调用外部js
html中如何调用外部js

在 html 中调用外部 js 可通过以下步骤:创建 js 文件并编写代码。在 html 代码中添加 <script> 标签,设置 src 属性为 js 文件路径。保存并刷新页面加载外部 js。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.11

1712

6

php和js的区别
php和js的区别

php和js的区别:PHP主要用于服务器端编程,而JavaScript主要用于客户端编程;PHP代码在服务器端执行,而JavaScript代码在客户端浏览器中执行。想了解更多php和js的相关内容,可以阅读本专题下面的文章。

2024.03.22

4828

11

JS的Document介绍
JS的Document介绍

在JavaScript中,document对象是一个非常重要的全局对象,它代表整个HTML文档。想了解更多Document的相关内容,可以阅读本专题下面的文章。

2024.03.14

6047

11

js中each函数的用法
js中each函数的用法

在JavaScript中,并没有一个内建的each函数,但jQuery库提供了一个非常有用的$.each() 函数,用于遍历数组或对象。想了解更多each函数的相关内容,可以阅读本专题下面的文章。

2024.03.13

1629

5

js和vue的关系
js和vue的关系

js和vue的关系:1、js作为web开发基石;2、vue.js作为前端框架的崛起;3、js与vue的互补关系;4、js与vue的实践应用。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.03.11

353

5

js弹幕功能实现方法
js弹幕功能实现方法

PHP中文网为大家带来,js实现弹幕功能的方法:1、创建html文件;2、添加html代码架构;3、在body标签中使用div、input、button标签分给页面设计效果显示框、输入框、弹幕提交按钮;4、添加script标签并写入js代码来实现弹幕效果;5、通过浏览器方式查看设计效果即可。希望对大家有所帮助。

2024.03.04

2992

11

js事件冒泡可以解决哪些问题
js事件冒泡可以解决哪些问题

js事件冒泡可以解决的问题:1、简化事件处理逻辑;2、提高事件处理性能;3、实现自定义组件和交互效果;4、控制事件传播方向;5、解决事件覆盖问题;6、实现全局事件监听;7、方便调试和排查问题。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

2824

4

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
WEB前端教程【HTML5+CSS3+JS】
WEB前端教程【HTML5+CSS3+JS】

共101课时 | 20.9万人学习

JS进阶与BootStrap学习
JS进阶与BootStrap学习

共39课时 | 4.8万人学习