跳到主要内容

DuckDuckGo搜索接口

接口简介

提示

该接口实际上是 https://ddg-api.herokuapp.com/search 这个接口的套壳,使用现有的接口可以节省计算资源并提高响应速度。
但为保证稳定性,在上游接口出现错误或无响应时仍然会进行本地爬取和分析,故该接口会概率出现加载超时等问题。

该接口从 DuckDuckGo 或者一个备用的 API 获取指定关键字的搜索结果,可以选择日期范围和返回的结果数,并返回一个包含每个搜索结果的标题、链接和摘要的对象数组。

接口地址

https://api.peckot.com/DuckDuckGoSearch

请求参数

警告

keyword 为必选参数,若未提供将返回错误!

可选性参数类型默认值描述可选值
keywordstring-要搜索的关键字-
✔️amountinteger5要返回的搜索结果数1-50
✔️timestringnull搜索的日期范围"year"、"month"、"week"、"day"、null

返回结果

响应参数类型描述
ALLcodeintegerHTTP 状态码
ALLmessagestring响应状态信息
FAILEDadvicestring请求失败时的错误提示
SUCCESSdataarray[object]包含每个搜索结果的标题、链接和摘要的对象数组

每个对象都包括以下字段:

  • title: 搜索结果的标题。
  • link: 搜索结果的链接。
  • snippet: 搜索结果的摘要。

使用示例

以下是一个典型的请求和响应示例:

请求

# GET请求
curl 'https://api.peckot.com/DuckDuckGoSearch?keyword=Peckot%20API&amount=1'
# POST请求
curl 'https://api.peckot.com/DuckDuckGoSearch' \
-H 'Content-Type: application/json' \
-d '{
"keyword": "Peckot API",
"amount": 1
}'

响应

{
"code": 200,
"message": "Data request succeeded!",
"data": {
"results": [
{
"title": "Peckot Studios | Welcome",
"link": "https://peckot.com/?lang=en",
"snippet": "注册账户 PeckotMC 关于我们 Some feature here. Some text here. Some feature here. Some text here. Some feature here. Some text here. 我们的在营项目 由 Peckot Studios 或其附属小组开发并保持维护的相关作品 PeckotMC 由 Peckot Studios 运营的一个基于 Minecraft: Java Edition 的多人游戏服务器。 ..."
}
]
}
}

异常处理

当请求参数不正确或请求失败时,API返回一个错误响应以帮助调试。以下是一个错误响应示例:

{
"code": 400,
"message": "Data request failed! Error: Please provide the keyword parameter!",
"advice": "Confirm whether your parameters are correct."
}