Search the web via Baidu AI Search API.
将 JSON 写入临时文件,脚本会自动读取并处理 UTF-8 BOM:
powershell
# PowerShell 中使用
$json = @{
query = "搜索关键词"
search_recency_filter = "day"
} | ConvertTo-Json -Compress
[System.IO.File]::WriteAllText("$env:TEMP\baidu_req.json", $json, [System.Text.Encoding]::UTF8)
python.exe "skills\baidu-search-1-1-0\scripts\search.py" "$env:TEMP\baidu_req.json"
bash
python skills/baidu-search/scripts/search.py '{"query":"关键词","search_recency_filter":"day"}'
⚠️ 注意:在 Windows PowerShell 下,直接传参可能因转义问题失败,建议使用方式一。
bash
echo '{"query":"关键词"}' | python skills/baidu-search/scripts/search.py
参数类型必填默认值说明querystring是-搜索关键词editionstring否standardstandard(完整版)或 lite(精简版)resource_type_filterarray否web:20资源类型过滤: web(最多50)、 video(最多10)、 image(最多30)、 aladdin(最多5)search_filterobject否-高级过滤器(见下文)block_websitesarray否-屏蔽的网站,如 ["tieba.baidu.com"]search_recency_filterstring否year时间过滤: week、 month、 semiyear、 yearsafe_searchboolean否false启用严格内容过滤
参数类型说明match.sitearray限制在特定网站,如 ["baike.baidu.com"]range.pageTimeobject页面时间范围(见下文)
YYYY-MM-DDnow-1w/d、 now-1M/d、 now-1y/d操作符含义gte大于等于(起始)lte小于等于(结束)
bash
# 基础搜索
python skills/baidu-search/scripts/search.py '{"query":"人工智能"}'
# 按时间过滤
python skills/baidu-search/scripts/search.py '{"query":"最新新闻","search_recency_filter":"week"}'
# 按时间和网站过滤
python skills/baidu-search/scripts/search.py '{
"query":"最新新闻",
"search_recency_filter":"week",
"search_filter":{"match":{"site":["news.baidu.com"]}}
}'
# 资源类型过滤
python skills/baidu-search/scripts/search.py '{
"query":"旅游景点",
"resource_type_filter":[{"type":"web","top_k":20},{"type":"video","top_k":5}]
}'
问题:PowerShell 直接传递 JSON 字符串给 Python 时,单引号/双引号可能被错误解析。
解决:使用临时文件方式传递参数。
问题:部分工具写入文件时会添加 BOM( \ufeff),导致 json.loads() 解析失败。
解决:脚本已内置 BOM 自动处理,调用方无需额外处理。
问题:Windows 终端默认使用 GBK 编码,中文字符输出时可能显示为乱码。
解决:脚本已设置 sys.stdout.reconfigure(encoding='utf-8', errors='replace'),输出时自动转换。
✅ 功能正常,支持文件路径/stdin/直接参数三种调用方式,自动处理 UTF-8 BOM 和输出编码。