Releases: leolee9086/SAC_search
Releases · leolee9086/SAC_search
Release list
v0.1.1 — 修好 DuckDuckGo 引擎「成功但无结果」
修好了什么
DuckDuckGo 引擎长期「调用成功但永远没有结果」——它一直排在引擎列表里,健康统计显示正常,实际每次都返回空。
根因(实测)
同一个端点,POST 被判定为自动化,GET 正常返回。
| 请求 | 结果 |
|---|---|
GET https://html.duckduckgo.com/html/?q=… |
200,含 result__a / result__snippet / result__url 各 10 条 |
POST https://html.duckduckgo.com/html/(补全浏览器头 + Cookie) |
202 + 人机验证页 |
GET https://lite.duckduckgo.com/lite/?q=… |
202 + 人机验证页 |
原实现三路探测里 HTML 主路径走的正是 POST,所以稳定拿到验证页、解析为空;而空结果又被健康统计记为「成功」,于是它一直显示正常却从不产出。
改动
- 主路径 POST → GET(
q/kl/df进查询串) - 验证墙判据收窄为主认结构化特征(
challenge-form、anomaly-modal),不再把anomaly.js当判据(那是表单 action,会误伤正常页) - 查询超 499 字符直接不发
- 303 按正常空结果处理,不再与 403 一起当拒绝访问
- 硬失效改为抛错而不是
return []:让框架能如实记录「这个引擎这次失败了」,不再伪装成成功 CaptchaError/AccessDeniedError增加可选suspendedTime,由引擎自己声明暂停时长;DDG 取 0,因为它的验证墙只表示本次查询未通过,不该停掉整个引擎
验证
bun test/verify-ddg-get.mjs 微舆经代理取真实响应,用引擎自身的解析器断言:5 项全绿,解出 8 条结果,标题 / URL / 摘要均正确。
安装
pnpm add ./dsh-tool-websearch-0.1.1.tgzv0.1.0 — 多引擎元搜索插件首发
本次发布
DSH 多引擎元搜索插件 0.1.0 首发:免 API key 直接调用约 200 个搜索引擎,并发执行、结果去重聚合、按引擎权重与时效性评分。运行时零依赖,只通过运行时的 Cordis 服务契约与 DSH 交互。
提供的能力
web_search_meta:多引擎元搜索,可指定 engines 子集,支持时间范围、语言、结果数与查询类型。web_search_status:可用引擎清单、权重、超时、速率限制、缓存与健康状态。web_search_proxy:查看或切换本地代理。- 浏览器结果卡:展示搜索结果,以及运行中的逐引擎进度。
这一版的取舍
- 进度只保存在插件实例的内存里,按
sessionId + callId隔离,不注册进度投影、也不调用Session.append写自定义事件,因此不会污染会话日志,也不依赖官方对 ignorable 表面的实现。仓库里的standard与progress-events两个分支保留了当初关于自定义会话事件的对比。 - 插件不 import 任何 DSH 包,仓库里不出现 DSH 源码路径;搜索实现打包进
lib/search.bundle.mjs,安装方不需要 bun,也不需要任何运行时依赖。
安装
下载本页附带的 dsh-tool-websearch-0.1.0.tgz,在 DSH Web profile 目录(默认 ~/.dsh/profiles/web)执行:
pnpm add ./dsh-tool-websearch-0.1.0.tgz然后在该 profile 的 cordis.patch.yml 中追加:
- insert:
- id: dsh-tool-websearch
name: dsh-tool-websearch重载插件或重启 DSH 后刷新浏览器页面。需要 Node.js 22.19.0 或更高版本。