3

使用 DuckDuckGo API 的默认搜索只返回第一页上的结果(我猜大约 25 个)。有什么方法可以获得更多结果或导航到搜索结果的第 2、3 页?

像 Faroo 这样的网站有一个名为s(代表 start)的参数,如果我们想要前 10 个结果,可以将其设置为1 ,如果我们想要接下来的 10 个结果,则可以设置为11,依此类推。DuckDuckGo 也有类似的东西吗?

4

2 回答 2

3

根据 DuckDuckGo Search API 文档,所有可用参数为:

问:查询

格式:输出格式(json或xml)

如果format=='json',也可以通过:

callback:回调函数(JSONP 格式) pretty:1 使 JSON 看起来更漂亮(如 Chrome/Firefox 的 JSONView)

no_redirect: 1 跳过 HTTP 重定向(用于 !bang 命令)。

no_html: 1 从文本中删除 HTML,例如粗体和斜体。

skip_disambig: 1 跳过消歧 (D) 类型。

特别要注意:

但是,此 API 不包括我们的所有链接。也就是说,它不是一个完整的搜索结果 API,也不是一种将 DuckDuckGo 结果导入您的应用程序的方法,而不仅仅是我们的即时答案。

于 2015-05-11T12:36:21.187 回答
1

TL/DR;- 安装 TamperMonkey,添加下面的短脚本(完整说明如下),浏览器将在您滚动时自动延迟加载下一页。

在通过谷歌得到这个答案并且没有找到我正在寻找的信息之后,我写了这个小 TamperMonkey 脚本来完成这项工作。我把它贴在这里给未来的谷歌人。

以下用户脚本适用于 Chrome、Firefox 和 Opera。安装说明在脚本下方,下面是 TamperMonkey 的简要说明。

该脚本的灵感来自于Tumpio的Endless Google ,并以类似的名称命名(以纪念)。

// ==UserScript==
// @name         Endless DuckDuckGo
// @namespace    http://tampermonkey.net/
// @match        https://duckduckgo.com/?q=*
// @require      http://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    $(window).scroll(function(){
        var els = document.querySelectorAll('.result.result--more');
        if (els.length){
            var elmore = document.querySelectorAll('.result--more__btn.btn.btn--full');
            if (elmore.length){
                elmore[0].click();
            }
        }
    });
})();  //

 

如何安装上述脚本:

  1. 安装Chrome的 TamperMonkey 扩展(或Firefox的“插件” )。

  2. 您将看到TamperMonkey 图标出现在浏览器的顶部

  3. 在 DuckDuckGo 上进行搜索

  4. 单击 TamperMonkey 图标,然后从下拉菜单中选择仪表板

  5. 沿着仪表板页面顶部的选项卡,单击[+]选项卡条左侧的图标

  6. TamperMonkey 编辑器将打开一个空白的 UserScript 模板。删除整个示例脚本并将其替换为本文中的脚本。

  7. 节省[Ctrl] + [s]

  8. 运行另一个 DuckDuckGo 搜索并向下滚动页面......真正的幸福是你的。

 

什么是 TamperMonkey:

一个很好的概述是here

TamperMonkey 是一个浏览器扩展,每个主流浏览器都有一个 TamperMonkey 版本。您可能已经使用 AdBlock 或 uBlock 浏览器扩展(如果没有,为什么不呢?),这只是另一个类似的扩展。无论如何,要安装 Chrome 或 Brave,请转到Chrome 网上应用店并搜索 Jan Binoc 的 TamperMonkey。安装它。(是的,它是安全的——有成千上万的用户,主要是编码人员)。请考虑捐赠 - Jan 值得您的支持(不,我不认识他,是的,我捐赠了。)

在 TamperMonkey 之前,还有另一个名为GreaseMonkey的扩展程序做同样的事情,但只在 Firefox 上工作。然而,GreaseMonkey 作者停止维护它或其他什么,Jan Binoc 与 TamperMonkey 站在一起。

TamperMonkey 允许我们将自己的代码注入任何网页,以编程方式在我们的本地计算机上操作网页。这是如何运作的?简单解释:当您查看网页时,您从未真正“直接从 Web 服务器”查看它 - 您的浏览器首先将网页代码的本地副本下载到浏览器的缓存文件夹并从那里显示给您。因此,TamperMonkey 可以在页面从缓存(在本地硬盘驱动器上)加载到浏览器时拦截页面,并在显示之前对其进行修改。这种解释过于简单,在技术上并不完全准确,但本质上这正是它的工作原理,以及TamperMonkey工作的原因。 最重要的是: 上面几行解释了为什么其他人的页面不会改变——只是为了你,在你自己的电脑上。

TamperMonkey 是学习一点 javascript/css/html 的绝佳理由。使用它,你可以做一些事情,比如在网页上隐藏或重新排列图像、从页面中删除混乱、完全重新格式化页面等。例如,我最喜欢的新闻网站之一有很多混乱。所以,我去了他们的 RSS 提要页面,它就像一个很好的文章索引,但也有太多我不想看到的东西(主要是不必要的缩略图和太窄的列)。我写了一个简短的 TM 脚本来隐藏所有图像并加宽列,现在,我看到的不是每个屏幕 5 或 6 个文章摘要,而是 20 个。

我见过的关于 html/css/js 的绝对最好、最简洁的入门书在 Lynda.com 上。(您可能已经可以通过当地的借书证访问 - 我很惊讶地发现我这样做了。)艾玛·桑德斯(Emma Saunders)有一个名为D3.js Essential Training for Data Scientists. 该课程html/css/js 中的两个简短教程 (Recalling HTML Basics (4m)Understanding HTML5 (3m)) 开始,它们本身就值得大学课程的学费。为什么不能每个人都这样教?无论如何,这就是你所需要的——前两个(3 分钟和 4 分钟)视频。现在,去调整一个网页。

(最终免责声明:不,我也不认识 Emma Saunders,我也与 Binoc 或 Saunders 的产品有任何关系。我只是一个普通的用户和粉丝。)

于 2018-11-05T20:20:50.910 回答