使用 DuckDuckGo API 实现多种搜索功能

news2025/1/21 10:24:23

在日常生活中,我经常使用搜索引擎来查找信息,如谷歌和百度。然而,当我想通过 API 来实现这一功能时,会发现这些搜索引擎并没有提供足够的免费 API 服务。如果有这样的免费 API, 就能定时获取“关注实体”的相关内容,并使用大语言模型如 ChatGPT 或本地模型来总结, 最终定时输送整理好的信息到我们自己。相当于自己能构建一个建议的定制的智能秘书。

谷歌的免费 API 每日查询限额较小,而通过爬虫进行搜索又非常麻烦。如果有一个搜索引擎能提供免费不限额的 API 服务,那将会非常便利。今天,我们将介绍 DuckDuckGo,它提供了这样的功能。

DuckDuckGo API 简介

DuckDuckGo 是一个较大的搜索引擎,其英文搜索质量较好,中文搜索质量虽然不及百度和谷歌,但也足够使用。本文将介绍如何使用 DuckDuckGo 的搜索 API。

安装 DuckDuckGo 包

首先,需要安装 DuckDuckGo 的 Python 包:

pip install duckduckgo_search

使用 DuckDuckGo 搜索内容

下面的示例代码展示了如何使用 DuckDuckGo 搜索内容。需要注意的是,DuckDuckGo 国内请求速度不佳,建议加 Proxy 使用。

from duckduckgo_search import DDGS
from pprint import pprint

with DDGS() as ddgs:
    pprint([r for r in ddgs.text("大模型", region='cn-zh', max_results=10)])

请添加图片描述

通过上面的代码,我们可以看到 DDGS 返回了各个搜索条目的标题、简介和网址。如果我们要关注某个内容的最新热点,可以使用该接口。

使用 DuckDuckGo 搜索新闻

下面的示例展示了如何使用 DuckDuckGo 搜索新闻。相比直接搜索,每条新闻条目还包含相关图片。

from duckduckgo_search import DDGS
from pprint import pprint

with DDGS() as ddgs:
    pprint([r for r in ddgs.news("CHATGPT", region='cn-zh', max_results=10)])

请添加图片描述

基于这个功能,可以通过添加适当的开发,构建一个简单的 RSS 关键词新闻源。定时通过 DDGS 获取新闻,生成 RSS 数据。

使用 DuckDuckGo 搜索图片

下面的示例展示了如何使用 DuckDuckGo 搜索图片。

from duckduckgo_search import DDGS
from pprint import pprint

with DDGS() as ddgs:
    pprint([r for r in ddgs.images("刘亦菲", region='cn-zh', max_results=10)])

在这里插入图片描述

搜索图片时,返回的结果包括资源链接和预览图 URL,可以直接下载相关图片。

使用 DuckDuckGo 搜索视频

下面的示例展示了如何使用 DuckDuckGo 搜索视频。

from duckduckgo_search import DDGS
from pprint import pprint

with DDGS() as ddgs:
    pprint([r for r in ddgs.videos("搞笑视频", region='cn-zh', max_results=10)])

在这里插入图片描述

使用 DuckDuckGo 进行翻译

DuckDuckGo 还可以作为免费的多语言翻译 API 使用。下面的示例展示了如何实现这一功能。

from duckduckgo_search import DDGS
from pprint import pprint

with DDGS() as ddgs:
    pprint([r for r in ddgs.translate("搞笑视频", region='cn-zh', max_results=10)])

在这里插入图片描述
虽然翻译效果一般,但由于免费且不限量,依然是一个不错的选择。

下面是公众号,欢迎扫描二维码,谢谢关注,谢谢支持!

公众号名称: 清易AI
公众号
欢迎来到“清易AI”!这里将为你揭开在家用电脑上轻松部署AI的神秘面纱。探索LLM、TTS、ASR等AI模型桌面部署,通过简洁而深入的技术文章,让你在AI的世界中轻松自如。成为家庭AI工程师,从容享受智能的乐趣!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1719346.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

高通开发系列 - ubuntu中的docker安装debian镜像

By: fulinux E-mail: fulinux@sina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 返回:专栏总目录 目录 概述当前状态Ubuntu中安装dockerDebian镜像Debian容器中操作更改Debian源安装应用程序

推荐:4本易发表的优质SSCI期刊,含期刊官网!

01、Risk Management and Healthcare Policy 开源四区,国人发表占比25%,发表量前三的国家分别是中国、埃塞俄比亚和美国。 该期刊对国人友好,年度发文量400多,影响因子3.6。 主要刊发公共卫生相关的文章。 研究者可以围绕居民…

【第十三节】C++控制台版本坦克大战小游戏

目录 一、游戏简介 1.1 游戏概述 1.2 知识点应用 1.3 实现功能 1.4 开发环境 二、项目设计 2.1 类的设计 2.2 各类功能 三、程序运行截图 3.1 游戏主菜单 3.2 游戏进行中 3.3 双人作战 3.4 编辑地图 一、游戏简介 1.1 游戏概述 本项目是一款基于C语言开发的控制台…

【学习笔记】Windows GDI绘图(九)Graphics详解(上)

文章目录 Graphics 定义创建Graphics对象的方法通过Graphics绘制不同的形状、线条、图像和文字等通过Graphics操作对象坐标 Graphics属性Clip(裁切/绘制区域)ClipBounds获取裁切区域矩形范围CompositiongMode合成方式CompositingQuality渲染质量DpiX和DpiY 水平、垂直分辨率Int…

2024年5月31日 (周五) 叶子游戏新闻

《Granblue Fantasy: Relink》版本更新 新增可操控角色及功能世嘉股份有限公司现已公开《Granblue Fantasy: Relink》(以下简称 Relink)免费版本更新ver.1.3.1于5月31日(周五)上线的消息。该作是由Cygames Inc.(下称Cy…

SpringSecurity6从入门到实战之Filter过滤器回顾

SpringSecurity6从入门到实战之Filter过滤器回顾 如果没有SpringSecurity这个框架,我们应该通过什么去实现客户端向服务端发送请求时,先检查用户是否登录,登录了才能访问.否则重定向到登录页面 流程图如下 官方文档:https://docs.spring.io/spring-security/referen…

实际测试stm32中断优先级

HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority); void HAL_NVIC_EnableIRQ(IRQn_Type IRQn); void HAL_NVIC_DisableIRQ(IRQn_Type IRQn);第一个函数 HAL_NVIC_SetPriority 是用来设置单个优先级的抢占优先级和响应优先级的值。第二个…

改进YOLOv8系列:构建新型单头transformer模块,加入到骨干尾部

改进YOLOv8系列:构建新型单头transformer模块,加入到骨干尾部 需要修改的代码self attention代码创建yaml文件测试是否创建成功本文提供了改进 YOLOv8注意力系列包含不同的注意力机制以及多种加入方式,在本文中具有完整的代码和包含多种更有效加入YOLOv8中的yaml结构,读者…

服务器迁徙大作战:从虚拟到物理的服务迁移全攻略

时光匆匆,发现自己已经很久没有动笔写博客了。瞥了一眼掘金,上一篇博客居然还停留在22年。五年间,似乎自己变得越发慵懒,或许是因为一旦进入舒适区,就不太愿意再去挑战自己,不管是在技术上还是生活中。刚毕…

【Linux】磁盘结构文件系统软硬链接动静态库

目录 一.磁盘结构 1、磁盘的物理结构 2、磁盘的存储结构 3、磁盘的逻辑结构 二.文件系统 1、对IO单位的优化 2、磁盘分区与分组 3、对分组的具体管理方法 4、文件操作 三.软硬链接 1、理解硬链接 2、理解软连接 3、理解.和.. 四、动静态库 1、什么是动静态库 2、…

Threejs(WebGL)绘制线段优化:Shader修改gl.LINES模式为gl.LINE_STRIP

目录 背景 思路 Threejs实现 记录每条线的点数 封装原始裁剪索引数据 封装合并几何体的缓冲数据:由裁剪索引组成的 IntArray 守住该有的线段! 修改顶点着色器 修改片元着色器 完整代码 WebGL实现类似功能(简易版,便于测…

线性代数|机器学习-P1课程简介

文章目录 1. 书籍下载2. 正文 1. 书籍下载 链接:https://pan.baidu.com/s/1QbK0enLh0x4nU1c4Tqwlkw 提取码:r7ft 本课程回顾线性代数在概率论、统计学、优化和深度学习中的应用。是GILBERT STRANG教授的有一个经典的课程。课程将线性代数分为如下部分&a…

Android Studio启动第一个项目的报错——笔记

零基础第一次使用Android Studio开发遇到的问题 1 新建项目下载gradle慢的问题 直接叉掉打开gradle官网手动下载自己想要的版本 gradle官网 然后在刚刚建好的项目里找到gradle-wrapper.properties,修改distributionUrl,并把自己从官网下载的包放到和gr…

SQLRecon:一款针对MSSQL的网络侦查与后渗透测试工具

关于SQLRecon SQLRecon是一款针对Microsoft SQL Server的安全研究工具,该工具专为红队研究人员设计,可以帮助广大研究人员针对MSSQL执行网络侦查和后渗透利用测试。 工具安装 广大研究人员可以直接访问该项目的【Releases页面】下载预编译的最新版本SQ…

WHAT - 用户登录系列(二)- 单点登录 SSO

目录 一、认证机制1.1 基于会话的认证(Session-based Authentication)1. 介绍2. 基本流程 1.2 JSON Web Tokens (JWT)1. 介绍2. jwt 组成3. 基本流程4. 阻止列表5. 刷新令牌 二、单点登录:SSO2.1 单系统登录2.2 SSO 介绍2.3 SSO 登录2.4 SSO …

从零开始学习Slam-旋转矩阵旋转向量四元组(二)

本文参考:计算机视觉life 仅作笔记用 书接上回,上回不清不楚的介绍了旋转矩阵&旋转向量和四元组 现在回顾一下重点: 本着绕谁谁不变的变则 假设绕z轴旋转θ,旋转矩阵为: 再回顾一下旋转向量的表示以及这个基本记不…

【课程总结】Day4:信息论和决策树算法

前言 本章内容主要是学习机器学习中的一个重要模型:决策树,围绕决策树的应用,我们展开了解到:熵的定义、熵的计算、决策树的构建过程(基于快速降熵)、基尼系数等,从而使得我们对决策树有了直观认识。 熵的介绍 因为…

discuz论坛怎么修改备案信息

大家好,今天给大家分享下discuz如何填写备案信息并且展示在网站首页。大家都知道国内网站都需要备案,不通过备案的网站上是没办法通过域名打开的。大家也可以通过搜索网创有方,或者直接点击网创有方 查看悬挂备案号后的效果。 首先大家可以看…

AntV F2 极坐标堆叠柱状图:可视化数据分布

本文由ScriptEcho平台提供技术支持 项目地址:传送门 AntV F2 极坐标堆叠柱状图:可视化数据分布 应用场景 极坐标堆叠柱状图适用于展示不同分类数据在某个维度上的分布情况,例如不同电影的票房占比、不同商品的销售额占比等。通过这种方式…

闽盾杯 2021 DNS协议分析

今年CISCN的Tough DNS 的前戏就是DNS协议分析 直接可以查找到flag的base64形式Zmxh 发现就是请求的dnslog 携带的数据 过滤器就是 dns tshark -r dns.pcapng -T json -Y "dns" >1.json 字段选择 dns.qry.name tshark -r dns.pcapng -T json -Y "dns"…