DuckDuckGo搜索接口
接口简介
提示
该接口实际上是 https://ddg-api.herokuapp.com/search
这个接口的套壳,使用现有的接口可以节省计算资源并提高响应速度。
但为保证稳定性,在上游接口出现错误或无响应时仍然会进行本地爬取和分析,故该接口会概率出现加载超时等问题。
该接口从 DuckDuckGo 或者一个备用的 API 获取指定关键字的搜索结果,可以选择日期范围和返回的结果数,并返回一个包含每个搜索结果的标题、链接和摘要的对象数组。
接口地址
https://api.peckot.com/DuckDuckGoSearch
请求参数
警告
keyword 为必选参数,若未提供将返回错误!
可选性 | 参数 | 类型 | 默认值 | 描述 | 可选值 |
---|---|---|---|---|---|
❌ | keyword | string | - | 要搜索的关键字 | - |
✔️ | amount | integer | 5 | 要返回的搜索结果数 | 1-50 |
✔️ | time | string | null | 搜索的日期范围 | "year"、"month"、"week"、"day"、null |
返回结果
响应 | 参数 | 类型 | 描述 |
---|---|---|---|
ALL | code | integer | HTTP 状态码 |
ALL | message | string | 响应状态信息 |
FAILED | advice | string | 请求失败时的错误提示 |
SUCCESS | data | array[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."
}