基于 Bing 国内版 / DuckDuckGo 的联网搜索工具,针对中文环境优化,可按需抓取目标网页正文并返回结构化结果。仅在用户明确请求联网搜索时调用。
基于 Playwright 的 Bing 国内版 / DuckDuckGo 搜索工具。专注于 搜索 + 可选正文抓取 两件事,无副作用。
仅在用户 明确请求联网搜索 时调用,例如:
trigger_keywords 已经收窄到只识别 free-web-search、 联网搜索、 网页搜索、 web search,不会因为消息里出现"新闻"、"最新消息"这些常见词就把对话内容发到外部搜索引擎。
mkt=zh-CN,结果以中文为主--full=N 抓取前 N 条结果正文(默认 0 不抓取)--no-sandbox、 --disable-gpu、 --disable-dev-shm-usage 三个标准稳定性参数所有依赖必须在使用前手动安装。脚本运行时不会自动安装任何 npm/pip 包,也不会修改宿主环境。
依赖用途备注Python 3.8+运行时—playwright浏览器自动化pip install playwrightChromiumPlaywright 浏览器引擎playwright install chromium(约 150 MB)
bash
# Linux / macOS
bash scripts/setup.sh
bash
pip install playwright
playwright install chromium
bash
# 基础搜索(不抓正文)
python scripts/web_search.py "Python 异步编程 最佳实践 2026" --max=10
# 搜索 + 抓前 3 条全文
python scripts/web_search.py "中国大型邮轮 花城号 出坞" --full=3
# 手动指定区域(代理用户)
python scripts/web_search.py "技术教程" --region=cn # 强制 Bing CN
python scripts/web_search.py "技术教程" --region=intl # 强制 DuckDuckGo
搜索效果取决于 Query 是否合理:
场景推荐不推荐时效新闻2026年04月 美伊局势``最近美伊之间发生了什么技术教程Python 异步编程 2026``我想学 Python 异步编程本地内容广东东莞 今日天气``东莞今天天气怎么样啊官方信息华为云 ModelArts 文档``华为云那个 ModelArts 怎么看
参数类型默认范围说明query字符串—必填搜索关键词--max整数101-20最多返回条数--full整数00-5抓取前 N 条全文--region字符串autoauto/cn/intl区域覆盖(auto = IP 探测,cn = Bing CN,intl = DuckDuckGo)
启用此工具会产生以下出站请求,使用前请确认你的环境允许:
目的端点数据IP 地理位置探测myip.ipip.net, cip.cc, ipinfo.io/json, ipapi.co/json你的 IP、UABing 搜索(国内 IP 默认)cn.bing.com你的 query 文本、IP、UADuckDuckGo 搜索(国外 IP 默认)duckduckgo.com你的 query 文本、IP、UA抓取目标页(仅当 --full > 0)各搜索结果对应的站点你的 IP、UA、Referer
工具本身:
如果你不希望抓取目标页,把 --full 留在默认值 0 即可,工具只会访问搜索引擎和 IP 探测服务。
free-web-search(本工具):
free-web-search-js:
选择建议:优先使用本工具(free-web-search),仅在遇到 JS 渲染问题时切换到 free-web-search-js。
当前版本无自动化测试覆盖。欢迎贡献测试用例。
--region=intl 强制 DuckDuckGo脚本不会自动安装。手动跑:
bash
pip install playwright
playwright install chromium
--region=cn 或 --region=intl 手动覆盖headless=True,无 GUI 依赖--full 最多 5 条,单页正文截断到 8000 字