使用Java搜索Google的本地化Web搜索

时间:2010-09-21 18:25:30

标签: java search localized

我正在尝试使用Java应用程序搜索不同国家/地区的Google,例如google.co.uk,google.de等。我发现与Java一起使用的Google Ajax API只允许您使用以下

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.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

但返回的结果是一个空页面。任何人都知道解决方法吗?

感谢

萨姆

1 个答案:

答案 0 :(得分:1)

根据class reference,您可以在网址查询中设置'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 */);

我在这里假设langauge会影响结果,因为这两个请求(en v fr)似乎会产生不同的结果:

您可以在此处找到最新的语言代码:http://msdn.microsoft.com/en-us/library/ms533052(v=vs.85).aspx