4.6 KiB
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
故障排除
常见问题
-
Token 错误 403
- 确保请求中包含
token=fGWEFWGrgasegtjt1jUJG
- 确保请求中包含
-
连接超时
- 检查网络连接
- 尝试增加超时时间
-
结果为空
- 尝试更换关键词
- 检查语言设置
获取帮助
- 查看详细文档:
/tmp/searxng_skills.md - 查看脚本帮助:
python3 /tmp/searxng_search.py --help