2

我正在尝试使用 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.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 */);

我在这里假设语言会影响结果,仅仅是因为这两个请求(en v fr)似乎会导致不同的结果:

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

于 2011-07-12T12:21:34.237 回答