Files
2026-09-27 23:06:24 +08:00

4.6 KiB

SearXNG API 使用指南

快速开始

Python 脚本方式

# 安装依赖 (如需要)
pip3 install requests

# 搜索示例
python3 /tmp/searxng_search.py "python教程"

# 指定分类
python3 /tmp/searxng_search.py "猫咪图片" -c images

# 指定时间范围
python3 /tmp/searxng_search.py "科技新闻" --time-range week

# 输出 JSON
python3 /tmp/searxng_search.py "python" --raw

cURL 方式

# 基础搜索
curl "https://searxng.erhe.top/search?q=关键词&token=fGWEFWGrgasegtjt1jUJG"

# JSON 格式
curl "https://searxng.erhe.top/search?q=关键词&format=json&token=fGWEFWGrgasegtjt1jUJG"

Python 代码方式

import requests

def search(query):
    response = requests.get(
        "https://searxng.erhe.top/search",
        params={
            "q": query,
            "format": "json",
            "token": "fGWEFWGrgasegtjt1jUJG"
        }
    )
    return response.json()

# 使用
results = search("python教程")
for r in results['results'][:5]:
    print(r['title'], r['url'])

常用命令参考

用途 命令
基础搜索 python3 /tmp/searxng_search.py "关键词"
图片搜索 python3 /tmp/searxng_search.py "关键词" -c images
视频搜索 python3 /tmp/searxng_search.py "关键词" -c videos
中文结果 python3 /tmp/searxng_search.py "关键词" -l zh
最近一周 python3 /tmp/searxng_search.py "关键词" -t week
限制结果数 python3 /tmp/searxng_search.py "关键词" -m 20
原始 JSON python3 /tmp/searxng_search.py "关键词" --raw
查看帮助 python3 /tmp/searxng_search.py --help

Agent 集成示例

Claude Code 工具定义

{
  "name": "searxng_search",
  "description": "使用 SearXNG 隐私搜索引擎进行网络搜索",
  "input_schema": {
    "type": "object",
    "properties": {
      "query": {
        "type": "string",
        "description": "搜索关键词"
      },
      "category": {
        "type": "string",
        "enum": ["general", "images", "videos", "news", "music"],
        "description": "搜索分类"
      },
      "language": {
        "type": "string",
        "default": "auto",
        "description": "语言代码"
      },
      "max_results": {
        "type": "integer",
        "default": 10,
        "description": "最大结果数"
      }
    },
    "required": ["query"]
  }
}

Python 工具实现

def searxng_search_tool(query, category="general", language="auto", max_results=10):
    """
    SearXNG 搜索工具
    """
    try:
        response = requests.get(
            "https://searxng.erhe.top/search",
            params={
                "q": query,
                "format": "json",
                "token": "fGWEFWGrgasegtjt1jUJG",
                "language": language,
                "categories": category if category != "general" else None
            },
            timeout=15
        )
        
        if response.status_code == 200:
            data = response.json()
            results = []
            
            for r in data.get('results', [])[:max_results]:
                results.append({
                    "title": r.get('title', ''),
                    "url": r.get('url', ''),
                    "snippet": r.get('content', '')[:200],
                    "source": r.get('engine', '')
                })
            
            return {
                "success": True,
                "query": data.get('query', query),
                "count": len(results),
                "results": results
            }
        else:
            return {
                "success": False,
                "error": f"HTTP {response.status_code}"
            }
            
    except Exception as e:
        return {
            "success": False,
            "error": str(e)
        }

# 使用示例
result = searxng_search_tool("如何安装Python", max_results=5)
if result['success']:
    for r in result['results']:
        print(f"📄 {r['title']}\n   {r['url']}\n")

完整文档

查看详细文档: cat /tmp/searxng_skills.md

测试

# 测试脚本
python3 /tmp/searxng_search.py "test" -m 3

# 测试 cURL
curl -s "https://searxng.erhe.top/search?q=test&format=json&token=fGWEFWGrgasegtjt1jUJG" | head -20

故障排除

常见问题

  1. Token 错误 403

    • 确保请求中包含 token=fGWEFWGrgasegtjt1jUJG
  2. 连接超时

    • 检查网络连接
    • 尝试增加超时时间
  3. 结果为空

    • 尝试更换关键词
    • 检查语言设置

获取帮助

  • 查看详细文档: /tmp/searxng_skills.md
  • 查看脚本帮助: python3 /tmp/searxng_search.py --help