← 返回 Skills 市场
Felo Web Extract
作者
wangzhiming
· GitHub ↗
· v1.0.0
391
总下载
0
收藏
4
当前安装
1
版本数
在 OpenClaw 中安装
/install felo-web-extract
功能描述
Extract web page content from a URL using Felo Web Extract API. Use when users ask to scrape/capture/fetch webpage content, extract article text from URL, co...
使用说明 (SKILL.md)
\r \r
Felo Web Extract Skill\r
\r
When to Use\r
\r Trigger this skill when the user wants to:\r \r
- Extract or scrape content from a webpage URL\r
- Get article/main text from a link\r
- Convert a webpage to Markdown or plain text\r
- Capture readable content from a URL for summarization or processing\r \r Trigger keywords (examples):\r \r
- extract webpage, scrape URL, fetch page content, web extract, url to markdown\r
- Explicit:
/felo-web-extract, "use felo web extract"\r - Same intent in other languages (e.g. 网页抓取, 提取网页内容) also triggers this skill\r \r Do NOT use for:\r \r
- Real-time search or Q&A (use
felo-search)\r - Generating slides (use
felo-slides)\r - Local file content (read files directly)\r \r
Setup\r
\r
1. Get API key\r
\r
- Visit felo.ai\r
- Open Settings -> API Keys\r
- Create and copy your API key\r \r
2. Configure environment variable\r
\r Linux/macOS:\r \r
export FELO_API_KEY="your-api-key-here"\r
```\r
\r
Windows PowerShell:\r
\r
```powershell\r
$env:FELO_API_KEY="your-api-key-here"\r
```\r
\r
## How to Execute\r
\r
### Option A: Use the bundled script or packaged CLI\r
\r
**Script** (from repo):\r
\r
```bash\r
node felo-web-extract/scripts/run_web_extract.mjs --url "https://example.com/article" [options]\r
```\r
\r
**Packaged CLI** (after `npm install -g felo-ai`): same options, with short forms allowed:\r
\r
```bash\r
felo web-extract -u "https://example.com" [options]\r
# Short forms: -u (url), -f (format), -t (timeout, seconds), -j (json)\r
```\r
\r
Options:\r
\r
| Option | Default | Description |\r
|--------|---------|-------------|\r
| `--url` | (required) | Webpage URL to extract |\r
| `--format` | markdown | Output format: `html`, `text`, `markdown` |\r
| `--target-selector` | - | CSS selector: extract only this element (e.g. `article.main`, `#content`) |\r
| `--wait-for-selector` | - | Wait for this selector before extracting (e.g. dynamic content) |\r
| `--readability` | false | Enable readability processing (main content only) |\r
| `--crawl-mode` | fast | `fast` or `fine` |\r
| `--timeout` | 60000 (script) / 60 (CLI) | Request timeout: script uses **milliseconds**, CLI uses **seconds** (e.g. `-t 90`) |\r
| `--json` / `-j` | false | Print full API response as JSON |\r
\r
### How to write instructions (target_selector + output_format)\r
\r
When the user wants a **specific part** of the page or a **specific output format**, phrase the command like this:\r
\r
- **Output format**: "Extract as **text**" / "Get **markdown**" / "Return **html**" → use `--format text`, `--format markdown`, or `--format html`.\r
- **Target one element**: "Only the **main article**" / "Just the **content inside** `#main`" / "Extract only **article.main-content**" → use `--target-selector "article.main"` or the selector they give (e.g. `#main`, `.main-content`, `article .post`).\r
\r
Examples of user intents and equivalent commands:\r
\r
| User intent | Command |\r
|-------------|---------|\r
| "Extract this page as plain text" | `--url "..." --format text` |\r
| "Get only the main content area" | `--url "..." --target-selector "main"` or `article` |\r
| "Extract the div with id=content as markdown" | `--url "..." --target-selector "#content" --format markdown` |\r
| "Just the article body, as HTML" | `--url "..." --target-selector "article .body" --format html` |\r
\r
Examples:\r
\r
```bash\r
# Basic: extract as Markdown\r
node felo-web-extract/scripts/run_web_extract.mjs --url "https://example.com"\r
\r
# Article-style with readability\r
node felo-web-extract/scripts/run_web_extract.mjs --url "https://example.com/article" --readability --format markdown\r
\r
# Raw HTML\r
node felo-web-extract/scripts/run_web_extract.mjs --url "https://example.com" --format html --json\r
\r
# Only the element matching a CSS selector (e.g. main article)\r
node felo-web-extract/scripts/run_web_extract.mjs --url "https://example.com" --target-selector "article.main" --format markdown\r
\r
# Specific output format + target selector\r
node felo-web-extract/scripts/run_web_extract.mjs --url "https://example.com" --target-selector "#content" --format text\r
```\r
\r
### Option B: Call API with curl\r
\r
```bash\r
curl -X POST "https://openapi.felo.ai/v2/web/extract" \\r
-H "Authorization: Bearer $FELO_API_KEY" \\r
-H "Content-Type: application/json" \\r
-d '{"url": "https://example.com", "output_format": "markdown", "with_readability": true}'\r
```\r
\r
## API Reference (summary)\r
\r
- **Endpoint**: `POST /v2/web/extract`\r
- **Base URL**: `https://openapi.felo.ai`. Override with `FELO_API_BASE` env if needed.\r
- **Auth**: `Authorization: Bearer YOUR_API_KEY`\r
\r
### Request body (JSON)\r
\r
| Parameter | Type | Required | Default | Description |\r
|-----------|------|----------|---------|-------------|\r
| url | string | Yes | - | Webpage URL to extract |\r
| crawl_mode | string | No | fast | `fast` or `fine` |\r
| output_format | string | No | html | `html`, `text`, `markdown` |\r
| with_readability | boolean | No | - | Use readability (main content) |\r
| with_links_summary | boolean | No | - | Include links summary |\r
| with_images_summary | boolean | No | - | Include images summary |\r
| target_selector | string | No | - | CSS selector for target element |\r
| wait_for_selector | string | No | - | Wait for selector before extract |\r
| timeout | integer | No | - | Timeout in milliseconds |\r
| with_cache | boolean | No | true | Use cache |\r
\r
### Response\r
\r
Success (200):\r
\r
```json\r
{\r
"code": 0,\r
"message": "success",\r
"data": {\r
"content": { ... }\r
}\r
}\r
```\r
\r
Extracted content is in `data.content`; structure depends on `output_format`.\r
\r
### Error codes\r
\r
| HTTP | Code | Description |\r
|------|------|-------------|\r
| 400 | - | Parameter validation failed |\r
| 401 | INVALID_API_KEY | API key invalid or revoked |\r
| 500/502 | WEB_EXTRACT_FAILED | Extract failed (server or page error) |\r
\r
## Output Format\r
\r
On success (script without `--json`):\r
\r
- Print the extracted content only (for direct use or piping).\r
\r
With `--json`:\r
\r
- Print full API response including `code`, `message`, `data`.\r
\r
Error response to user:\r
\r
```markdown\r
## Web Extract Failed\r
\r
- Error: \x3Ccode or message>\r
- URL: \x3Crequested url>\r
- Suggestion: \x3Ce.g. check URL, retry, or use --timeout>\r
```\r
\r
## Important Notes\r
\r
- Always check `FELO_API_KEY` before calling; if missing, return setup instructions.\r
- For long articles or slow sites, consider `--timeout` or `timeout` in request body.\r
- Use `output_format: "markdown"` and `with_readability: true` for clean article text.\r
- API may cache results; use `with_cache: false` in body only when fresh content is required (script does not expose this by default).\r
\r
## References\r
\r
- [Felo Web Extract API](https://openapi.felo.ai/docs/api-reference/v2/web-extract.html)\r
- [Felo Open Platform](https://openapi.felo.ai/docs/)\r
安全使用建议
This skill appears to do what it says (POST to openapi.felo.ai to extract page content), but the manifest failed to declare the required FELO_API_KEY. Before installing or running: (1) confirm you are comfortable supplying your Felo API key (ensure the key's scope/permissions are appropriate); (2) verify the provider (openapi.felo.ai / felo.ai) and that the key will only be sent to that endpoint; (3) be aware the included Node script will make network requests using whatever FELO_API_KEY is present in the environment — avoid exposing broader credentials; (4) because the skill source/homepage is listed as unknown, prefer obtaining the tool directly from a trusted Felo release or the vendor if available. If you need higher assurance, request that the skill manifest be updated to declare FELO_API_KEY explicitly and provide publisher/homepage provenance.
功能分析
Type: OpenClaw Skill
Name: felo-web-extract
Version: 1.0.0
The felo-web-extract skill is a legitimate tool designed to extract webpage content via the Felo Web Extract API (openapi.felo.ai). The core logic in scripts/run_web_extract.mjs is transparent, using standard Node.js fetch calls to send user-provided URLs to the official API endpoint, and it correctly handles authentication via the FELO_API_KEY environment variable without any signs of data exfiltration, obfuscation, or malicious intent.
能力评估
Purpose & Capability
Name, description, README, SKILL.md, and the included Node script all consistently implement a web-extraction client for the Felo API. However the skill's registry metadata claims 'Required env vars: none' while the runtime explicitly requires FELO_API_KEY (and optionally FELO_API_BASE). That metadata omission is an incoherence.
Instruction Scope
Runtime instructions and the script only perform an HTTP POST to the Felo API, accept user-supplied URL and selector options, and print returned content. The skill does not read arbitrary local files, other credentials, or call unexpected external endpoints beyond the documented openapi.felo.ai endpoint (FELO_API_BASE override is documented).
Install Mechanism
There is no install spec (instruction-only style) and the included script is plain JavaScript (no obfuscation). No downloads from untrusted URLs or archive extraction are present. The script will run locally if executed, but nothing in the repository attempts to install additional packages automatically.
Credentials
The runtime requires an API key (FELO_API_KEY) to authenticate with the Felo service, which is proportionate to the skill's purpose. The concern is that this required credential is not declared in the registry metadata (manifest lists 'none'), creating a mismatch: users or systems that rely on the manifest might not realize an API key is necessary or might supply it incorrectly. No other unrelated secrets are requested.
Persistence & Privilege
The skill is not set to 'always' and does not request persistent system-wide privileges. It does not modify other skills or system configs. Autonomous invocation is allowed by default (platform normal) but not combined with other privilege escalations.
如何使用
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install felo-web-extract - 安装完成后,直接呼叫该 Skill 的名称或使用
/felo-web-extract触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
Initial release of felo-web-extract skill.
- Extracts content from web pages (URL) using the Felo Web Extract API.
- Supports extraction as HTML, plain text, or Markdown, with options for readability mode and target element via CSS selector.
- CLI script and API usage instructions included for setup and execution.
- Clearly distinguishes use cases from other skills, like felo-search and felo-slides.
- Provides troubleshooting, error codes, and output formatting guidance.
元数据
常见问题
Felo Web Extract 是什么?
Extract web page content from a URL using Felo Web Extract API. Use when users ask to scrape/capture/fetch webpage content, extract article text from URL, co... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 391 次。
如何安装 Felo Web Extract?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install felo-web-extract」即可一键安装,无需额外配置。
Felo Web Extract 是免费的吗?
是的,Felo Web Extract 完全免费(开源免费),可自由下载、安装和使用。
Felo Web Extract 支持哪些平台?
Felo Web Extract 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Felo Web Extract?
由 wangzhiming(@wangzhiming1999)开发并维护,当前版本 v1.0.0。
推荐 Skills