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();
}
}
});
})(); //
Как установить вышеуказанный скрипт:
Установите расширение TamperMonkey для Chrome (или "надстройку" для Firefox).
Вы увидите значок TamperMonkey в верхней части браузера.
Сделайте поиск на DuckDuckGo
Нажмите на значок TamperMonkey и в раскрывающемся меню выберите Dashboard
На вкладках в верхней части страницы панели инструментов нажмите на
[+]
значок слева от вкладкиОткроется редактор TamperMonkey с пустым шаблоном UserScript. Удалите весь этот пример сценария и замените его сценарием из этого поста.
Сохранить
[Ctrl] + [s]
Запустите другой поиск 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. Я просто заурядный пользователь и фанат.)