2012-02-21 40 views
0

我必須在google中獲取第一個搜索結果的html頁面。
爲此,我使用谷歌「我很幸運」,所以基本上加入& btnI來搜索查詢網址。 因此,例如 - http://www.google.com/search?q=%22movie%22+site:amazon.com&btnI重定向到amazon.com上的電影相關頁面在java中從重定向url中獲取數據給出了403錯誤

讓這就是我們的searchQuery;

searchQuery = "http://www.google.com/search?q=%22movie%22+site:amazon.com&btnI"; 
URL url = new URL(searchQuery); 
InputStream response = url.openStream(); 
BufferedReader reader = new BufferedReader(new InputStreamReader(response)); 
for (String line; (line = reader.readLine()) != null;) { 
    System.out.println(line); 
} 
reader.close(); 

我越來越
錯誤:服務器返回的HTTP響應代碼:403網址:http://www.google.com/search?q=%22movie%22+site:amazon.com&btnI
需要一些幫助,同時如果有更好的方法..do讓我知道!

回答

1

嘗試使用HttpURLConnection

然後#setFollowRedirects(true)併爲Firefox或IE等設置用戶代理。

像這樣:

URLConnection connection = new URL(searchQuery).openConnection(); 
connection.setFollowRedirects(true); 
connection.setRequestProperty("User-Agent", 
     "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.2) Gecko/20100101 Firefox/10.0.2"); 
connection.connect(); 
InputStream response = connection.getInputStream(); 
... 
+0

任何想法,爲什麼我的代碼失敗了呢? – r15habh 2012-02-21 10:31:14