5

これが私の 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

4

1 に答える 1

4

これは文書化された動作です。さまざまな結果属性があります。

最初のクエリは、結果のリストを返します。

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 は、すべての検索結果リンクを提供しないDuckDuckGo APIを使用します

インスタント アンサー API を使用すると、トピックの概要 (API の例)、カテゴリ (API の例)、曖昧さ回避 (API の例)、!bang リダイレクト (API の例)、定義 (API の例) など、多くのインスタント アンサーに無料でアクセスできます。

ただし、この API にはすべてのリンクが含まれているわけではありません。つまり、これは完全な検索結果 API ではなく、DuckDuckGo の結果をアプリケーションに取得する方法でもありません。検索結果の生成方法が原因で、残念ながら結果を完全にシンジケートする権利はありません。同じ理由で、ブランディングなしで結果をフレーミングすることはできません。ガイドラインの詳細と連絡先については、パートナーシップのページをご覧ください。

DuckDuckGo API を使用してやりたいことを行うことはできませんが、考えられる回避策が Stackoverflow に投稿されています: https://stackoverflow.com/a/11923803/241866

于 2013-08-10T10:12:13.777 に答える