如何使用 SearxNG API 进行网页搜索

SearxNG 是一个开源的元搜索引擎,允许用户在多个搜索引擎中同时搜索,并通过一个统一的界面展示结果。本文将介绍如何利用 SearxNG API 进行网页搜索并展示结果。

技术背景介绍

SearxNG 是 Searx 项目的一个分支,旨在提供更高效和可扩展的搜索功能。其 API 支持多种自定义搜索参数,可以调用 135 个不同的搜索引擎,包括 Google Scholar、Arxiv、GitHub 等。

核心原理解析

SearxNG 的 API 允许发送 HTTP 请求以获取搜索结果。通过自定义参数,可以限定搜索引擎、语言、结果数量等。例如,可以将搜索引擎限定为 Wikipedia,或者设置返回结果的数量限制为 5 条。

代码实现演示

下面是一个简单的 Python 示例,演示如何使用 SearxNG API 进行基本搜索:

import pprint
from langchain_community.utilities import SearxSearchWrapper

# 使用 SearxSearchWrapper 进行搜索
search = SearxSearchWrapper(searx_host="http://127.0.0.1:8888")

# 执行搜索
result = search.run("What is the capital of France")
print(result)  # 输出结果

# 自定义搜索参数
search = SearxSearchWrapper(searx_host="http://127.0.0.1:8888", k=5)
result = search.run("large language model", engines=["wiki"])
print(result)

# 设置搜索语言
search = SearxSearchWrapper(searx_host="http://127.0.0.1:8888", k=1)
result = search.run("deep learning", language="es", engines=["wiki"])
print(result)

# 获取含元数据的搜索结果
results = search.results(
    "Large Language Model prompt",
    num_results=5,
    categories="science",
    time_range="year",
)
pprint.pp(results)
应用场景分析
  • 科研工作者:可以用它迅速找到相关的学术论文。
  • 开发者:可以用来查找代码库和技术文档。
  • 内容创作者:可以用它查找信息来源,辅助写作。
实践建议
  1. 自定义搜索参数:充分利用自定义参数来优化搜索体验,比如指定搜索引擎、结果数量、语言等。
  2. 处理搜索结果:根据需求处理和过滤搜索结果,例如只保留特定来源的结果。
  3. 定期更新:保持 SearxNG 实例的更新,以利用最新的功能和性能改进。

结束语:如果遇到问题欢迎在评论区交流。

—END—

Python拓扑排序可以通过使用深度优先搜索(DFS)算法来实现。有两种常见的实现方法。 第一种方法是使用递归的方式实现。在这种方法中,我们定义一个递归函数`topoSortvisit0`,它接受三个参数:当前节点`s`,访问状态列表`visited`和排序列表`sortlist`。首先,将当前节点标记为已访问。然后,对于当前节点的每个邻接节点,在邻接节点未被访问的情况下,递归调用`topoSortvisit0`函数。最后,将当前节点插入到排序列表的开头。接着,我们定义`topoSortDfs0`函数,初始化节点的访问状态列表`visited`和排序列表`sortlist`,然后对于图中的每个节点,如果节点未被访问,就调用`topoSortvisit0`函数。最后,返回排序列表即可得到拓扑排序的结果。 第二种方法是使用堆栈来实现。在这种方法中,我们定义一个辅助函数`topologicalSortUtil`,它接受三个参数:当前节点`v`,访问状态列表`visited`和堆栈`stack`。首先,将当前节点标记为已访问。然后,对于当前节点的每个邻接节点,如果邻接节点未被访问,就递归调用`topologicalSortUtil`函数。最后,将当前节点插入到堆栈的开头。接着,我们定义`topologicalSort`函数,初始化节点的访问状态列表`visited`和堆栈`stack`,然后对于图中的每个节点,如果节点未被访问,就调用`topologicalSortUtil`函数。最后,输出堆栈的内容即可得到拓扑排序的结果。 综上所述,可以使用上述两种方法之一来实现Python拓扑排序。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [拓扑排序(topological sorting)介绍及Python实现](https://blog.csdn.net/chenxy_bwave/article/details/125074013)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [拓扑排序Python实现](https://blog.csdn.net/JohnJim0/article/details/121047511)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值