Google Web Search APIは2010/11/1から非推奨となり 2016/04/29で廃止され、以降はCustom Search APIを使用することとされています。Google Web Search API (Deprecated) | Google Developers
var webSearch = new google.search.WebSearch();
検索結果をSearchControlに表示するならば、作成したWebSearchオブジェクトを、SearchControl.addSearcher()でSearchControlに追加します。
<!-- Google AJAX API ローダーのライブラリをインクルードする -->
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
function OnLoad()
{
var webSearch = new google.search.WebSearch();
webSearch.setSearchCompleteCallback( this, SearchComplete, [ webSearch ] );
webSearch.execute( keyword );
}
function SearchComplete( searcher )
{
var results = searcher.results;
}
google.load( 'search', '1' );
google.setOnLoadCallback( OnLoad );
</script>
メソッド | 説明 |
---|---|
setResultSetSize | 検索結果の数を設定する
(SearchControlのメソッドと同一) |
setQueryAddition | 検索対象とするファイルの種類などを制限する
|
メソッド | 説明 |
---|---|
setRestriction | セーフサーチおよびURLパラメータのオプションで結果を制限する |
setSiteRestriction | 検索対象を特定のURL、またはカスタム検索エンジンにだけ制限する |
セーフサーチ、検索対象とする言語と地域および重複した結果の除外を指定できます。
.setRestriction( type, opt_value )
searcher.setRestriction( google.search.Search.RESTRICT_SAFESEARCH, google.search.Search.SAFESEARCH_OFF );
第1引数をRESTRICT_EXTENDED_ARGSとすると、複数のパラメータを同時に設定できます。
searcher.setRestriction( google.search.Search.RESTRICT_EXTENDED_ARGS, { "lr":"lang_de", "filter":"0" } );
指定可能なパラメータはlr、gl、filterの3つで、これらはURLパラメータのオプションと同一の意味を持ちます。
検索対象と特定のURLもしくはカスタム検索エンジンにだけ制限できます。
.setSiteRestriction( site, // 検索対象とするURLの一部、もしくはカスタム検索エンジンID opt_refinement, // カスタム検索の絞り込みラベル opt_moreResultsTemplate // カスタム検索のテンプレートのURL )
たとえばexample.comだけを検索対象とするには、
searcher.setSiteRestriction( 'example.com' );
とします。カスタム検索エンジンを対象とするには、URLの代わりにカスタム検索エンジンIDを指定します。
searcher.setSiteRestriction( '0123456789:xx' );
さらに検索結果を絞り込むならば、検索ラベルを指定します。
searcher.setSiteRestriction( '0123456789:xx', 'bar' );
引数にnull
を渡すと、検索対象の設定がクリアされます。
Property | Description |
---|---|
.unescapedUrl | Supplies the raw URL of the result. |
.url | Supplies an escaped version of the above URL. |
.visibleUrl | Supplies a shortened version of the URL associated with the result. Typically displayed in green, stripped of a protocol and path. |
.title | Supplies the title value of the result. |
.titleNoFormatting | Supplies the title, but unlike .title, this property is stripped of html markup (e.g., <b>, <i>, etc.). |
.content | Supplies a brief snippet of information from the page associated with the search result. |
.cacheUrl | Supplies a url to Google's cached version of the page responsible for producing this result. This property may be null indicating that there is no cache, and it might be out of date in cases where the search result has been saved and in the mean time, the cache has gone stale. For best results, this property should not be persisted. |
<!-- Google AJAX API ローダーのライブラリをインクルードする --> <script type="text/javascript" src="http://www.google.com/jsapi?key=xx"></script> <script type="text/javascript"> function OnLoad() { // 検索コントロールを作成する var searchControl = new google.search.SearchControl(); // 検索コントロールにWeb検索のサーチャーを追加する searchControl.addSearcher( new google.search.WebSearch() ); // 検索コントロールを描画する searchControl.draw( document.getElementById( 'content' ) ); // 検索を実行する searchControl.execute( keyword ); } // Search APIをロードする google.load( 'search', '1' ); // ドキュメントがロードされた後に呼び出されるハンドラ関数を登録する google.setOnLoadCallback( OnLoad ); </script> <div id="content">Loading...</div>
メソッド | 説明 |
---|---|
addSearcher | SearcherオブジェクトをSearchControlに追加する。また第2引数にSearcherOptionsオブジェクトを渡すことで、コントロールの挙動をカスタマイズできる。 |
draw | |
execute | |
cancelSearch | |
clearAllResults | |
setOnKeepCallback | |
setSearchCompleteCallback | |
setSearchStartingCallback | |
setTimeoutInterval | |
setResultSetSize | 検索結果の数を設定する
|
setLinkTarget | 検索結果のリンクをクリックしたときの挙動を設定する
|
setNoResultsString |
var options = new google.search.SearcherOptions(); options.setExpandMode( google.search.SearchControl.EXPAND_MODE_PARTIAL ); var searchControl = new google.search.SearchControl(); searchControl.addSearcher( new google.search.WebSearch(), options );
メソッド | 説明 | ||||||||
---|---|---|---|---|---|---|---|---|---|
setExpandMode | 検索結果の展開モード
|
||||||||
setRoot | 検索結果を描画するDOM要素を指定する。この指定はSearchControl.draw()で指示する要素よりも優先される。 | ||||||||
setVideoResultsTbHeight | |||||||||
setImageResultsTbHeight | |||||||||
setNoResultsString |
http://ajax.googleapis.com/ajax/services/search/web?Flash and other Non-Javascript Environments
変数 | 説明 | 記述例 |
---|---|---|
q | クエリまたは検索式 | q=Paris%20Hilton |
v | プロトコルバージョン | v=1.0 |
userip | 検索をリクエストしたエンド ユーザーのIPアドレス | userip=192.168.0.1 |
rsz | 結果の取得数。有効な値は1~8 | rsz=4 |
hl | ホストの言語
(この値が指定されない場合には、HTTPヘッダのAccept-Languageからシステムが自動で決定する) |
hl=fr |
key | アプリケーションキー (AJAX APIキー) | key=your-key |
start | 検索結果の取得ページ | start=4 |
callback | コールバック関数 | callback=FunctionName |
context | context=bar |
変数 | 説明 | 記述例 |
---|---|---|
cx | カスタム検索エンジンのID | cx=000455696194071821846:reviews |
cref | リンク型カスタム検索エンジンの仕様を定義するファイルのURL | cref=http%3A%2F%2Fwww.google.com%2Fc se%2Fsamples%2Fvegetarian.xml |
safe | セーフサーチ
|
safe=moderate |
lr | 検索対象にする言語
(使用可能な値はSearch Labelsにある) |
lr=lang_ja |
filter | 重複した結果の除外
|
filter=1 |
gl | 検索対象とする地域
(使用可能な値はISO 3166-1のalpha-2 code) |
gl=jp |
プロパティ | 説明 |
---|---|
GsearchResultClass | 結果の種類。Web検索では、GwebSearch |
unescapedUrl | エスケープされていないページURL |
url | ページURL |
visibleUrl | ページ ドメイン |
cacheUrl | キャッシュのページURL |
title | ページ タイトル |
titleNoFormatting | <b>で強調されていないページ タイトル |
content | ページの概略 |
{ "responseData": { "results": [ { "GsearchResultClass": "GwebSearch", "unescapedUrl": "http://parishilton.com/", "url": "http://parishilton.com/", "visibleUrl": "parishilton.com", "cacheUrl": "http://www.google.com/search?q=cache:X8EQ8TIrk5QJ:parishilton.com", "title": "<b>Paris Hilton</b>", "titleNoFormatting": "Paris Hilton", "content": "Oprah Magazine Love PH Shoes! Oprah- Feb sky (1) · Oprah- Feb sky (2). Browse more styles from the <b>Paris Hilton</b> Shoe Collection here! Jan 20, 2012 in Fashion, Magazines, Photos, Products | Permalink | Comments (0). Reblog (0) | <b>...</b>" }, { "GsearchResultClass": "GwebSearch", "unescapedUrl": "https://ja.wikipedia.org/wiki/%E3%83%91%E3%83%AA%E3%82%B9%E3%83%BB%E3%83%92%E3%83%AB%E3%83%88%E3%83%B3", "url": "https://ja.wikipedia.org/wiki/%25E3%2583%2591%25E3%2583%25AA%25E3%2582%25B9%25E3%2583%25BB%25E3%2583%2592%25E3%2583%25AB%25E3%2583%2588%25E3%2583%25B3", "visibleUrl": "ja.wikipedia.org", "cacheUrl": "http://www.google.com/search?q=cache:LgS5ChmR2f0J:ja.wikipedia.org", "title": "<b>パリス・ヒルトン</b> - Wikipedia", "titleNoFormatting": "パリス・ヒルトン - Wikipedia", "content": "パリス・ホイットニー・ヒルトン(Paris Whitney Hilton, 1981年2月17日 - )は アメリカ合衆国のソーシャライト、ファッションモデル、ファッション <b>....</b> また自身が主演 した「プリティ・ライフ <b>パリス・ヒルトン</b>の学園天国」で映画プロデューサーとしてデビュー した。" }, { "GsearchResultClass": "GwebSearch", "unescapedUrl": "https://en.wikipedia.org/wiki/Paris_Hilton", "url": "https://en.wikipedia.org/wiki/Paris_Hilton", "visibleUrl": "en.wikipedia.org", "cacheUrl": "http://www.google.com/search?q=cache:TwrPfhd22hYJ:en.wikipedia.org", "title": "<b>Paris Hilton</b> - Wikipedia, the free encyclopedia", "titleNoFormatting": "Paris Hilton - Wikipedia, the free encyclopedia", "content": "<b>Paris</b> Whitney <b>Hilton</b> (born February 17, 1981) is an American businesswoman, heiress, and socialite. She is a great-granddaughter of Conrad <b>Hilton</b> (founder of <b>Hilton</b> Hotels). <b>Hilton</b> is known for her controversial participation in a sex tape in <b>...</b>" }, { "GsearchResultClass": "GwebSearch", "unescapedUrl": "http://www.parishiltonzone.com/", "url": "http://www.parishiltonzone.com/", "visibleUrl": "www.parishiltonzone.com", "cacheUrl": "http://www.google.com/search?q=cache:EXq0MGRNiNoJ:www.parishiltonzone.com", "title": "<b>Paris Hilton</b> Zone | <b>Paris Hilton</b> Pictures, Pics, Photos", "titleNoFormatting": "Paris Hilton Zone | Paris Hilton Pictures, Pics, Photos", "content": "Aug 27, 2011 <b>...</b> 9000+ new <b>Paris Hilton</b> pictures, Paris wallpaper, lyrics, audio, video, daily Paris pics & news." } ], "cursor": { "resultCount": "41,300,000", "pages": [ { "start": "0", "label": 1 }, { "start": "4", "label": 2 }, { "start": "8", "label": 3 }, { "start": "12", "label": 4 }, { "start": "16", "label": 5 }, { "start": "20", "label": 6 }, { "start": "24", "label": 7 }, { "start": "28", "label": 8 } ], "estimatedResultCount": "41300000", "currentPageIndex": 0, "moreResultsUrl": "http://www.google.com/search?oe=utf8&ie=utf8&source=uds&start=0&hl=ja&q=Paris+Hilton", "searchResultTime": "0.15" } }, "responseDetails": null, "responseStatus": 200 }取得結果は整形済み
レスポンスで、"Suspected Terms of Service Abuse. Please see http://code.google.com/apis/errors"と返される場合には、リクエストのパラメータ (userip) にエンドユーザーのIPアドレスを含めることで、この問題を回避できることがあります。