2010-09-21 120 views
2

我想用不同的国家搜索Google,例如google.co.uk,google.de等。我发现用于Java的Google Ajax API只会用于让你用以下网页搜索用Java搜索Google的本地化网页搜索

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地图,它使用经度和纬度,并提供商业搜索结果。我需要针对每个国家的网页。

任何想法..

我试图刮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

按照class reference可以设置在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 */); 

我在这里假设的langauge影响的结果,仅仅是因为这两个请求(EN V FR)出现导致不同的结果:

你可以在这里找到的语言代码LST:http://msdn.microsoft.com/en-us/library/ms533052(v=vs.85).aspx