69

Google は、実際のサイトのように、検索のオートコンプリートへの API アクセスを提供していますか? 私は何も見つけることができませんでした。

Google の検索 API に依存する自分のサイトで、ウェブ検索に Google のオートコンプリート ロジックを使用したいと考えています。

4

6 に答える 6

78

新しいURLは次のとおりです。

http://suggestqueries.google.com/complete/search?client=firefox&q=YOURQUERY

クライアント部分が必要です。私は他のクライアントをテストしませんでした。

[編集]

コールバックが必要な場合は、次を使用してください。

http://suggestqueries.google.com/complete/search?client=chrome&q=YOURQUERY&callback=callback

@Quandaryが見つけたように; コールバックはクライアント「firefox」では機能しません。

[編集2]

@ user2067021で示されているように、このAPIは2015年10月8日をもって機能しなくなります:オートコンプリートAPIの更新

于 2011-12-07T13:20:27.230 に答える
13

まず、Google にアクセスして [設定] (右下隅) をクリックし、[検索設定] を [インスタント結果を表示しない] に変更します。これにより、ページ全体のインスタント結果ではなく、通常のオートコンプリートが得られます。

設定を保存したら、Google のメイン ホームページに戻ります。ブラウザーの開発者ツールを開き、[ネットワーク] タブに移動します。Firefox を使用している場合は、ページをリロードする必要がある場合があります。

検索ボックスに文字を入力します。開いたばかりの [ネットワーク] ウィンドウに新しい行が表示されます。その行は、オートコンプリート データがどこから来たかを示しています。その URL をコピーします。次のようになります。

https://www.google.com/complete/search?client=hp&hl=en&sugexp=msedr&gs_rn=62&gs_ri=hp&cp=1&gs_id=9c&q=a&xhr=t&callback=hello

という部分の直後に検索用語があることに気付くでしょうq=

&callback=myAmazingFunctionURL の末尾に追加します。myAmazingFunction を、データを処理する関数に名前を付けたいものに置き換えることができます。

検索用語「a」のオートコンプリート データを表示するために必要なコードの例を次に示します。

<div id="output"></div>

<script>
/* this function shows the raw data */
function myAmazingFunction(data){
    document.getElementById('output').innerHTML = data;
}
</script>

<script src="https://www.google.com/complete/search?client=hp&hl=en&sugexp=msedr&gs_rn=62&gs_ri=hp&cp=1&gs_id=9c&q=a&xhr=t&callback=hello&callback=myAmazingFunction"></script>

データを取得する方法がわかったので、次のステップは、最後のスクリプト (オートコンプリート URL を持つスクリプト) を自動的に変更することです。基本的な手順は次のとおりです。ユーザーが検索ボックスに何かを入力するたびに (onkeyup)、URL 内の検索用語 (q=whatever) を置き換え、その URL を含むスクリプトを本文に追加します。本体がごちゃごちゃしないように、前のスクリプトを削除します。

詳細については、http: //simplestepscode.com/autocomplete-data-tutorial/ を参照してください。

于 2015-02-28T19:57:57.717 に答える
12

上記の方法のほとんどは私にとってはうまくいきます。具体的には、次の方法が私の目的に役立ちます。

http://suggestqueries.google.com/complete/search?client=firefox&q=YOURQUERY

Web プログラミングの初心者である私は、「コールバック」機能と、クエリによって返されるファイルの形式についてあまり認識していません。私は AJAX と JSON についてほとんど知りません。クエリによって返されるファイルの形式について、誰かが詳細を提供できますか。ありがとう。

于 2013-10-22T16:51:56.897 に答える
1

こんにちは、この回答があなたに関連しているかどうかはわかりませんが、Google は次の get リクエストを介して JSON データを返します (ただし、これは公式の API ではありませんが、多くのツールバーがこの API を使用しているため、Google が廃止する理由はありません) ):

http://google.com/complete/search?q=<Your keywords here>&hl=en 
于 2011-07-12T14:03:37.513 に答える
1

AutocompleteService を使用して、そのテキスト ボックスの値をservice.getPlacePredictions関数に渡す必要があります。コールバック関数でデータを送信します。

let service = new google.maps.places.AutocompleteService();

let displaySuggestions = function(predictions, status) {
}

service.getPlacePredictions({
    input: value
}, displaySuggestions);

ベース: https://developers.google.com/maps/documentation/javascript/reference/places-autocomplete-service#AutocompleteService.getPlacePredictions

例: https://dzone.com/articles/implement-and-optimize-autocomplete-with-google-pl

于 2021-03-01T13:47:49.533 に答える
-1

オートコンプリートを何に使用しようとしていますか? より多くの情報は、それを絞り込むのに役立ちます。

私の知る限り、Google は提供していませんが、jQuery UI のオートコンプリートのように存在します。

編集:

ここでオートコンプリート用にカスタム検索 API ビューを使用している場合。

于 2011-06-21T16:25:01.763 に答える