webfetch
封装 webfetch 命令行工具,用于抓取网页内容并转换为多种格式。
核心能力
- 1. 网页抓取 - 获取指定 URL 的网页内容
- 格式转换 - 支持 Markdown(默认)、纯文本、原始 HTML 三种输出格式
- 代理支持 - 自动读取环境变量代理配置,支持手动指定代理
- 文件保存 - 支持将抓取内容保存到指定文件
工作流程
🌐 抓取网页内容
当用户表达抓取网页、获取网页内容、网页转 Markdown 意图时,执行如下命令:
CODEBLOCK0
视需要也可以使用如下常见用法:
CODEBLOCK1
🔧 代理配置
当网络环境需要代理时,有两种方式:
方式一:环境变量(推荐)
CODEBLOCK2
方式二:命令行参数
CODEBLOCK3
🔓 跳过证书验证
当遇到 TLS 证书问题(如自签名证书)时:
CODEBLOCK4
⏱️ 超时设置
当目标网站响应较慢时:
CODEBLOCK5
🛠️ 错误排查
如果执行失败,按照以下步骤排查:
CODEBLOCK6
Step 1: 检查是否安装 webfetch
CODEBLOCK7
如果未安装,执行:
CODEBLOCK8
Step 2: 检查网络连接
CODEBLOCK9
Step 3: 检查代理配置
CODEBLOCK10
如果需要代理但未配置:
CODEBLOCK11
📄 不同输出格式
Markdown 格式(默认)
CODEBLOCK12
纯文本格式
CODEBLOCK13
原始 HTML
CODEBLOCK14
参数说明
| 参数 | 说明 |
|---|
| INLINECODE1 | 目标 URL,必填 |
| INLINECODE2 |
输出格式:markdown(默认)、text、html |
|
-t, --timeout <seconds> | 超时时间(秒),最大 120,默认 30 |
|
-o, --output <file> | 保存到指定文件 |
|
-q, --quiet | 静默模式,仅输出内容 |
|
--proxy <url> | 代理服务器地址 |
|
--insecure | 跳过 TLS 证书验证 |
环境变量
| 变量 | 说明 |
|---|
| INLINECODE8 | HTTP 请求代理 |
| INLINECODE9 |
HTTPS 请求代理 |
|
NO_PROXY | 跳过代理的主机列表 |
注意事项
- 1. 优先用 Markdown - Markdown 格式保留结构信息,适合阅读和后续处理
- 代理证书问题 - 使用代理时如遇证书错误,添加
--insecure 参数 - 响应大小限制 - 最大支持 5MB 响应内容
- JavaScript 渲染 - 不支持 JavaScript 渲染,仅抓取静态页面
退出码
用户错误(无效 URL、参数错误) |
| 2 | 网络错误(超时、DNS 解析失败) |
| 3 | 服务器错误(4xx、5xx 响应) |
快速参考
CODEBLOCK15
webfetch
封装 webfetch 命令行工具,用于抓取网页内容并转换为多种格式。
核心能力
- 1. 网页抓取 - 获取指定 URL 的网页内容
- 格式转换 - 支持 Markdown(默认)、纯文本、原始 HTML 三种输出格式
- 代理支持 - 自动读取环境变量代理配置,支持手动指定代理
- 文件保存 - 支持将抓取内容保存到指定文件
工作流程
🌐 抓取网页内容
当用户表达抓取网页、获取网页内容、网页转 Markdown 意图时,执行如下命令:
webfetch https://example.com
视需要也可以使用如下常见用法:
webfetch https://example.com # 默认输出 Markdown
webfetch https://example.com -f text # 输出纯文本
webfetch https://example.com -f html # 输出原始 HTML
webfetch https://example.com -o article.md # 保存到文件
webfetch https://example.com -q > output.md # 静默模式,适合管道
🔧 代理配置
当网络环境需要代理时,有两种方式:
方式一:环境变量(推荐)
export HTTPS_PROXY=http://proxy:8080
webfetch https://example.com
方式二:命令行参数
webfetch https://example.com --proxy http://proxy:8080
🔓 跳过证书验证
当遇到 TLS 证书问题(如自签名证书)时:
webfetch https://example.com --insecure
⏱️ 超时设置
当目标网站响应较慢时:
webfetch https://example.com --timeout 60
🛠️ 错误排查
如果执行失败,按照以下步骤排查:
- 1. 检查安装 → 2. 检查网络 → 3. 检查代理配置
Step 1: 检查是否安装 webfetch
command -v webfetch
如果未安装,执行:
npm install -g @lyhue1991/webfetch
Step 2: 检查网络连接
curl -I https://example.com
Step 3: 检查代理配置
printenv HTTPPROXY HTTPSPROXY
如果需要代理但未配置:
webfetch https://example.com --proxy http://proxy:8080
📄 不同输出格式
Markdown 格式(默认)
webfetch https://mp.weixin.qq.com/s/xxx -o article.md
纯文本格式
webfetch https://example.com -f text
原始 HTML
webfetch https://example.com -f html
参数说明
| 参数 | 说明 |
|---|
| <url> | 目标 URL,必填 |
| -f, --format <format> |
输出格式:markdown(默认)、text、html |
| -t, --timeout
| 超时时间(秒),最大 120,默认 30 |
| -o, --output | 保存到指定文件 |
| -q, --quiet | 静默模式,仅输出内容 |
| --proxy | 代理服务器地址 |
| --insecure | 跳过 TLS 证书验证 |
环境变量
| 变量 | 说明 |
|---|
| HTTPPROXY | HTTP 请求代理 |
| HTTPSPROXY |
HTTPS 请求代理 |
| NO_PROXY | 跳过代理的主机列表 |
注意事项
- 1. 优先用 Markdown - Markdown 格式保留结构信息,适合阅读和后续处理
- 代理证书问题 - 使用代理时如遇证书错误,添加 --insecure 参数
- 响应大小限制 - 最大支持 5MB 响应内容
- JavaScript 渲染 - 不支持 JavaScript 渲染,仅抓取静态页面
退出码
用户错误(无效 URL、参数错误) |
| 2 | 网络错误(超时、DNS 解析失败) |
| 3 | 服务器错误(4xx、5xx 响应) |
快速参考
查看帮助
webfetch --help
查看版本
webfetch --version
基础抓取
webfetch https://example.com
输出纯文本
webfetch https://example.com -f text
保存到文件
webfetch https://example.com -o output.md
使用代理
webfetch https://example.com --proxy http://proxy:8080
跳过证书验证
webfetch https://example.com --insecure
自定义超时
webfetch https://example.com --timeout 60
静默模式(适合管道)
webfetch https://example.com -q > output.md