2016-05-03 16 views
5

私がしたいのは、文字列クエリ(検索バーに手作業で入力するのと同じこと)と最初の結果のURL(あれば)を保存することだけです。Duckduckgo API検索結果を取得する

私は似たような質問(Python search scraping)を尋ねてきましたが、Googleの問題では、Duckduckgoの検索APIがどこにも見つからないという問題があります。あなたは私を助けてくれるのですか、これを行うための頑丈な方法を提案できますか?

+2

これはhttp://stackoverflow.com/questions/11722465/duckduckgo-api-not-returning-resultsと重複しているようです。 – ethanbustad

答えて

14

TL助けたホープは、DRを - - 画面の他の回答者が述べたように、DuckDuckGoのAPIのURLが

http://api.duckduckgo.com/?q=x&format=json 
です https://duckduckgo.com/html/?q= {} SEARCH_TERMS

をこすり

xあなたが探している検索用語です。

ただし、これはフル検索APIではないことにご注意ください。 DuckDuckGo's API pageには、

と記載されていますが、このAPIにはすべてのリンクは含まれていません。つまり、完全な検索結果APIではなく、DuckDuckGoの結果を即座の回答を超えてアプリケーションに取り込む方法でもありません。 we generate our search resultsのため、残念ながら、結果を完全にシンジケートする権利はありません。同じ理由から、私たちはブランディングなしで結果をフレーミングすることはできません。ガイドラインと私たちとの連絡の詳細についてはour partnerships pageをご覧ください。

これは完全な結果APIではなく、インスタントアンサーAPIです。しかし、そこにはいくつかのWebリンクがあります。公式サイト。

ので

のあなたの述べられた目的は、単なる文字列のクエリ(手で検索バーに入力するのと同等)を提出し、最初の結果(もしあれば)のURLを保存します。

api.duckduckgo.comでは、必要なものは得られません。

あなたの最善の策は、単に非JS、DuckDuckGoのウェブ版をこすりスクリーニングすることはおそらくです:

https://duckduckgo.com/html/?q=x 

div.resultまたはdiv.web-resultのようなもののセレクタを持つ要素を探しています。

+0

ありがとう、最後の3行は、リンクされた質問の答えに解説されていますか? – Nesa

+0

@ネサ!特に、あなたがpythonでスクリーンスクレイピングをすることに興味があるならば。 – ethanbustad

+0

経験豊富なチップをありがとう。 JSONパラメータを使用するメリットについて気にする必要はありませんか? – ntk4

3

あなたが検索したいものを変更してください。 JSON

この意志の出力が結果が
https://api.duckduckgo.com/?q=<your search string>&format=json&pretty=1&no_html=1&skip_disambig=1 

私は、これはあなたが

関連する問題