2

Java アプリを使用して、google.co.uk、google.de など、さまざまな国で Google を検索しようとしています。Java で使用される Google Ajax API では、次の方法でのみ Web 検索を実行できることがわかりました。

URL url = new URL("http://ajax.googleapis.com/ajax/services/search/web?v=1.0&"
+ "q=information%20retrieval&key=INSERT-YOUR-KEY&userip=USERS-IP-ADDRESS");

URLConnection connection = url.openConnection();

connection.addRequestProperty("Referer", /* Enter the URL of your site here */);

ただし、それは google.com の結果を表示するだけです。国ごとに個別の結果が必要です。Javaでこれを行う方法はありますか。

Google にはローカル検索がありますが、これは Google マップに基づいており、経度と緯度を使用してビジネス検索結果を提供します。各国固有の Web ページが必要です。

何か案は..

次のように google.co.uk の検索結果をスクレイピングしようとしていました。

http://www.google.co.uk/#hl=en&source=hp&q=information+retrieval&aq=f&aqi=g10&aql=&oq=&gs_rfai=CjqZ0vBeYTLfwMZz0ygTJ84WADgAAAKoEBU_Qz3dV&fp=44fc429e19c3a006

しかし、返された結果は空のページです。誰でも回避策を知っていますか?

ありがとう

サム

4

1 に答える 1

1

クラス リファレンスによると、URL クエリで「hl」パラメータを設定できます。したがって、英国の結果の場合、hl=en-gb を指定すると、コードは次のようになります。

URL url = new URL("http://ajax.googleapis.com/ajax/services/search/web?v=1.0&"
+ "hl=en-gb&q=information%20retrieval&key=INSERT-YOUR-KEY&userip=USERS-IP-ADDRESS");

URLConnection connection = url.openConnection();

connection.addRequestProperty("Referer", /* Enter the URL of your site here */);

ここでは、これら 2 つの要求 (en v fr) が異なる結果になるように見えるという理由だけで、言語が結果に影響を与えると仮定しています。

ここで言語コードのリストを見つけることができます: http://msdn.microsoft.com/en-us/library/ms533052(v=vs.85).aspx

于 2011-07-12T12:21:34.237 に答える