DuckDuckGo 网页搜索

用 DuckDuckGo 搜索 API 获取网页结果

通过 HTTP 检索 DuckDuckGo,以结构化 JSON 拿到标题、链接和摘要 —— 同一套请求结构,换的是一套不同于 Google 的索引。

接口
POST https://api.search1api.com/search
DuckDuckGo 搜索结果包含什么

结果的 JSON 结构与其他引擎一致,换引擎只是改一个字段。

1
页面标题与链接

标题干净,没有抓站常见的解析残缺。

2
摘要

就是 DuckDuckGo 展示的结果描述。

3
第二套通用索引

同一个查询,排序与 Google 不同。

适用于

交叉验证 / AI 回答 / 研究调研

同一个调用背后的第二套通用索引

把 `search_service` 设为 `duckduckgo`,结果就来自 DuckDuckGo。接口地址、鉴权方式和响应结构与其他引擎完全一致,可以原样插进已有的、基于 Google 的代码路径。

同一个查询,不同的排序

DuckDuckGo 依托自己的来源和排序,会带出只用 Google 的管道容易漏掉的页面。

即插即用的第二种口径

因为响应结构是共用的,比较两个引擎的成本是多发一次请求,而不是再接一套系统。

搜索和正文一次拿到

`crawl_results` 会抓取前 N 条结果并各自返回 markdown,行为和其他引擎一致。

标准 Search 参数

`max_results` 最大 50,以及 `include_sites`、`exclude_sites`、`time_range`。

什么是 DuckDuckGo 搜索 API?

DuckDuckGo 搜索 API 是一种 HTTP 接口,把 DuckDuckGo 的网页结果作为结构化数据返回。DuckDuckGo 自己公开的是 instant answer 端点,不是通用网页搜索 API,因此需要排序结果列表的应用会在它前面放一层搜索 API。Search1API 把 DuckDuckGo 作为 Search 接口的一个搜索服务提供,返回标题、链接和摘要,JSON 结构与其他引擎一致。它在 agent 管道里的实际价值是作为第二套通用索引:当 Google 的结果看起来偏薄或偏向一边时,同一个查询在这里只花 1 积分,就能拿到一个独立排序来做对照。

接入路径

典型流程

通过 HTTP 检索 DuckDuckGo,以结构化 JSON 拿到标题、链接和摘要 —— 同一套请求结构,换的是一套不同于 Google 的索引。

1

把 `search_service` 设为 `duckduckgo` 后发送查询。

2

把结果集和同样词的 `google` 查询做对比。

3

当回答需要页面正文而不只是链接时,设置 `crawl_results`。

一次请求,一个独立排序

一次调用即可检索 DuckDuckGo,以标准结构返回结果,给一个查询加一份第二口径只要 1 积分,不用写新代码。

bash
curl -X POST https://api.search1api.com/search \
-H "Authorization: Bearer $SEARCH1API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "AI agent",
"search_service": "duckduckgo",
"max_results": 5
}'

适合场景

对看起来偏薄或偏向一边的结果集做交叉验证。

从多个排序里拼装答案的 AI 助手。

单一引擎排序可能让结论产生偏差的研究工作。

希望在同一套契约里留一个兜底通用引擎的管道。

常见问题

DuckDuckGo 有官方的搜索 API 吗?

DuckDuckGo 公开的是 instant answer 端点,不是通用网页搜索 API,因此它不返回排序后的网页结果列表。Search1API 把 DuckDuckGo 作为 Search 接口的一个引擎提供,用于这类场景。

和 Google 引擎有什么区别?

DuckDuckGo 依托自己的来源和排序,同一个查询返回的页面集合和顺序都不同。两个都跑是覆盖策略,不是重复调用。

可以连页面正文一起拿到吗?

可以。把 `crawl_results` 设为需要抓取的结果数量,成功抓取的页面会包含 `content` 字段,内容是 markdown 格式的正文。抓取失败的页面不返回 `content`,也不计费。

DuckDuckGo 搜索的费用是多少?

每次搜索消耗 1 积分,通过 `crawl_results` 每成功抓取一个页面追加 1 积分。按 $1 = 1,000 积分的充值基础价计算,1,000 次搜索为 $1。注册即送 100 个免费积分,无需信用卡。

可以一次请求同时查 Google 和 DuckDuckGo 吗?

可以。Search 接口接受查询对象的数组,两个引擎可以放在一次批量请求里发出。每一条单独计费,失败的条目不计费。

还支持哪些引擎?

同一个 Search 接口还支持 `google`,以及 `reddit`、`x`、`github`、`arxiv`、`youtube`、`wikipedia`、`imdb` 等垂类来源,和 `baidu`、`360`、`quark`、`wechat`、`bilibili` 等中文引擎 —— 一套契约共 17 个。