Поиск DuckDuckGo возвращает "индекс списка вне диапазона"

Вот мой скрипт поиска Duck Duck Go.

import duckduckgo
r = duckduckgo.query('DuckDuckGo')
print r.results[0].url

это возвращается; индекс списка вне диапазона. Если я печатаю r.results, я получаю;

[<duckduckgo.Result object at 0x0000000002E98F60>]

Но если я ищу что-то кроме "DuckDuckGo". Возвращает пустое значение

[]

Я следовал именно за тем, что они сделали в примере кода. https://github.com/mikejs/python-duckduckgo

1 ответ

Это документированное поведение. Есть разные атрибуты результата.

Ваш первый запрос возвращает список результатов.

r = duckduckgo.query('DuckDuckGo')
if r.type == 'answer':
    print r.results    # [<duckduckgo.Result object>]

Ваш другой поиск возвращает неоднозначность, и ваши результаты находятся в r.related не в r.results

r = duckduckgo.query('Python')
if r.type == 'disambiguation':
    print r.related    # [<duckduckgo.Result object>]

Редактировать: python-duckduckgo использует API DuckDuckGo, который не дает вам все ссылки на результаты поиска

Наш API для мгновенного ответа дает вам бесплатный доступ ко многим нашим мгновенным ответам, таким как: резюме тем (пример API), категории (пример API), устранение неоднозначности (пример API), перенаправления! Bang (пример API) и определения (пример API).

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

Вы не можете делать то, что хотите, используя DuckDuckGo API, но возможный обходной путь был опубликован в Stackru: /questions/29669135/api-duckduckgo-ne-vozvraschaet-rezultatyi/29669151#29669151

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