2010-09-21 118 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