DuckDuckGo API - Как получить больше результатов?

Поиск по умолчанию с использованием DuckDuckGo API возвращает только результаты на первой странице (около 25, я думаю). Есть ли способ получить больше результатов или перейти на 2-ю, 3-ю страницы результатов поиска?

У таких сайтов, как Faroo, есть параметр s (что означает начало), который может быть установлен в 1, если мы хотим, чтобы первые 10 результатов, в 11, если мы хотим, чтобы следующие 10 результатов и так далее. Есть ли что-то подобное и для DuckDuckGo?

2 ответа

Решение

Согласно документации DuckDuckGo Search API все доступные параметры:

q: запрос

Формат: выходной формат (JSON или XML)

Если формат == 'json', вы также можете передать:

callback: функция для обратного вызова (формат JSONP) довольно: 1, чтобы JSON выглядел красиво (как JSONView for Chrome / Firefox)

no_redirect: 1, чтобы пропустить перенаправления HTTP (для команд!bang).

no_html: 1 для удаления HTML из текста, например, жирным шрифтом и курсивом.

skip_disambig: 1, чтобы пропустить устранение неоднозначности (D).

В частности, обратите внимание, что:

Однако этот API не включает в себя все наши ссылки. То есть это не полный API результатов поиска или способ получения результатов DuckDuckGo в ваших приложениях, помимо наших мгновенных ответов.

Это не ответ на вопрос выше, поэтому, пожалуйста, не голосуйте. Однако после того, как я пришел к этому ответу через Google и не нашел нужную мне информацию, я написал этот небольшой скрипт TamperMonkey для этой работы. Я разместил это здесь для будущих гуглеров.

Приведенный ниже пользовательский скрипт будет работать с Chrome, Firefox и Opera. Инструкции по установке следуют ниже сценария, а ниже приводится краткое объяснение того, что такое TamperMonkey.

Этот сценарий вдохновлен и назван так же (в честь) Endless Google от Tumpio.

// ==UserScript==
// @name         Endless DuckDuckGo
// @namespace    http://tampermonkey.net/
// @match        https://duckduckgo.com/?q=*
// @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. Установите расширение TamperMonkey для Chrome (или "надстройку" для Firefox).

  2. Вы увидите значок TamperMonkey в верхней части браузера.

  3. Сделайте поиск на DuckDuckGo

  4. Нажмите на значок TamperMonkey и в раскрывающемся меню выберите Dashboard

  5. На вкладках в верхней части страницы панели инструментов нажмите на [+] значок слева от вкладки

  6. Откроется редактор TamperMonkey с пустым шаблоном UserScript. Удалите весь этот пример сценария и замените его сценарием из этого поста.

  7. Сохранить [Ctrl] + [s]

  8. Запустите другой поиск DuckDuckGo и прокрутите страницу вниз... Истинное счастье - ваше.

Что такое TamperMonkey:

Хороший обзор здесь.

TamperMonkey - это расширение для браузера, и существует версия для всех основных браузеров. Вы, вероятно, уже используете расширения браузера AdBlock или uBlock - если нет, то почему? В любом случае, чтобы установить Chrome, зайдите в Интернет-магазин Chrome и найдите TamperMonkey от Jan Binoc. Установите это. (Да, это безопасно - есть сотни тысяч пользователей, в основном программисты). Пожалуйста, подумайте о пожертвовании - Ян заслуживает вашей поддержки (и нет, я его не знаю, и да, я пожертвовал.)

До TamperMonkey было еще одно расширение под названием GreaseMonkey, которое делало то же самое, но работало только с Firefox. Однако авторы GreaseMonkey перестали поддерживать его или что-то в этом роде, и Ян Бинок подошел к планшету с TamperMonkey.

TamperMonkey позволяет нам вводить наш собственный код в ЛЮБУЮ веб-страницу, чтобы программно манипулировать веб-страницей на наших локальных компьютерах. Как это работает? Проще говоря: когда вы просматриваете веб-страницу, вы фактически никогда не просматриваете ее "непосредственно с веб-сервера" - ваш браузер сначала загружает локальную копию веб-страницы в папку кэша вашего браузера и отображает ее вам оттуда. Таким образом, TamperMonkey может перехватывать страницу при загрузке в браузер и изменять ее перед отображением. Это объяснение является супер-упрощенным и не полностью технически точным, но по сути, именно так оно и работает, и почему TamperMonkey работает. Самое главное: приведенные выше несколько строк объясняют, почему страница не меняется ни для кого другого - только для вас, на вашем собственном компьютере.

TamperMonkey - отличная причина, чтобы немного изучить javascript / css / html. Используя его, вы можете делать такие вещи, как скрытие или переупорядочивание изображений на веб-странице, удаление беспорядка со страницы, полное переформатирование страницы и т. Д. Например, на одном из моих любимых новостных сайтов много беспорядка. Итак, я перехожу на их RSS-ленту, которая ведет себя как отличный указатель статей, но там также есть слишком много вещей, которые я не хочу видеть (в основном, изображения и узкие столбцы). Я написал короткий скрипт TM, чтобы скрыть все изображения и переформатировать страницу, и теперь вместо 5 или 6 резюме статей на первой странице я вижу ~ 20.

Абсолютно лучший, самый лаконичный учебник по html/css/js, который я когда-либо видел, находится на Lynda.com. (Возможно, у вас уже есть доступ через вашу локальную библиотечную карточку - я был очень удивлен, узнав, что у меня есть.) Есть серия книг Эммы Сондерс, которая называется D3.js Essential Training for Data Scientists, Курс начинается с двух коротких уроков (Recalling HTML Basics (4m) а также Understanding HTML5 (3m)) в html/css/js, которые сами по себе стоят обучения в университете. Почему не все могут учить так? Во всяком случае, это все, что вам нужно - эти первые два (3 и 4 мин) видео. Теперь перейдите к настройке веб-страницы.

(Окончательный отказ от ответственности: нет, я тоже не знаю Эмму Сондерс, и при этом я не имею никакого отношения к продуктам Binoc или Saunders. Я просто заурядный пользователь и фанат.)

Другие вопросы по тегам