webserp
跨 7 个引擎的网络搜索与浏览器模拟并行。当代理需要来自网络的最新信息(新闻、文档、最近事件或训练数据之外的任何内容)时使用。返回包含标题、URL 和内容的结构化 JSON(SearXNG 兼容)。使用curl_cffi 模仿真实的浏览器指纹,因此请求不会被阻止。使用“pip install webserp”安装。无需 API 密钥。
安装 / 下载方式
TotalClaw CLI推荐
totalclaw install totalclaw:totalclaw~paperboardofficial-webserpcURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/totalclaw%3Atotalclaw~paperboardofficial-webserp/file -o paperboardofficial-webserp.md## 概述(中文)
跨 7 个引擎的网络搜索与浏览器模拟并行。当代理需要来自网络的最新信息(新闻、文档、最近事件或训练数据之外的任何内容)时使用。返回包含标题、URL 和内容的结构化 JSON(SearXNG 兼容)。使用curl_cffi 模仿真实的浏览器指纹,因此请求不会被阻止。使用“pip install webserp”安装。无需 API 密钥。
## 原文
# webserp
Metasearch CLI — queries Google, DuckDuckGo, Brave, Yahoo, Mojeek, Startpage, and Presearch in parallel. Uses curl_cffi for browser impersonation. Results like a browser, speed like an API.
## When to use webserp
1. You need current/recent information not in your training data
2. You need to verify facts or find sources
3. You need to discover URLs, documentation, or code repositories
4. The user asks about recent events, releases, or news
## Install
```bash
pip install webserp
```
No API keys, no configuration. Just install and search.
## Usage
```bash
# Search all 7 engines (default)
webserp "how to deploy docker containers"
# Search specific engines
webserp "python async tutorial" --engines google,brave,duckduckgo
# Limit results per engine
webserp "rust vs go" --max-results 5
# Show which engines succeeded/failed
webserp "test query" --verbose
# Set per-engine timeout
webserp "query" --timeout 15
# Use a proxy
webserp "query" --proxy "socks5://127.0.0.1:1080"
```
## Options
| Flag | Description | Default |
|------|-------------|---------|
| `-e, --engines` | Comma-separated engine list | all |
| `-n, --max-results` | Max results per engine | 10 |
| `--timeout` | Per-engine timeout (seconds) | 10 |
| `--proxy` | Proxy URL for all requests | none |
| `--verbose` | Show engine status in stderr | false |
## Output format
JSON to stdout (SearXNG-compatible):
```json
{
"query": "deployment issue",
"number_of_results": 42,
"results": [
{
"title": "How to fix Docker deployment issues",
"url": "https://example.com/docker-fix",
"content": "Common Docker deployment problems and solutions...",
"engine": "google"
}
],
"suggestions": [],
"unresponsive_engines": []
}
```
Parse with `jq` or any JSON parser. The `results` array contains `title`, `url`, `content`, and `engine` for each result. `unresponsive_engines` lists any engines that failed with the error reason.
## Tips
- Use `--max-results 5` to keep output concise when you just need a few links
- Use `--engines google,brave` to target specific engines for faster results
- Use `--verbose` (writes to stderr) to see which engines responded — the JSON on stdout is unaffected
- Results are deduplicated by URL across engines — you won't get the same link twice