2013-01-22 64 views
0

我想搜索在谷歌查詢框中輸入以下內容:HTTP POST請求不工作

http://www.cmu.edu/silicon-valley/ faculty directory 

不幸的是,下面的代碼無法正常工作:

Jsoup.connect("http://www.google.com/search?hl=en&q=http%3A%%2F%%2F%www.cmu.edu%2F%silicon-valley%2F%20faculty20directory").get(); 

也沒有這一項:

Jsoup.connect("http://www.google.com/search?hl=en&q=http%3A%%2F%%2F%www.cmu.edu%2F%silicon-valley%2F%20faculty20or20directory").get(); 

我在這裏錯過了什麼?

編輯不工作意味着我們從瀏覽器中看到谷歌未返回任何結果。

Jsoup.connect("http://www.google.com/search?hl=en&q=http%3A%"%2F%%2F%www.cmu.edu%2F%silicon-valley%2F%20faculty").get(); 

雖然上面的代碼工作正常。這相當於Google搜索「http://www.cmu.edu/silicon-valley/ faculty」。

編輯:我在我的程序下面的技巧,所以殭屍規則是不是一個問題:

.userAgent("Mozilla") 
+1

關閉雙引號? – Aioros

+0

另外,定義「不起作用」 – SJuan76

+0

@Aioros對不起,錯字。 –

回答

3

Jsoup.connect("http://www.google.com/search?hl=en&q=http%3A%2F%2Fwww.cmu.edu%2Fsilicon-valley%2F+faculty+directory")導致403錯誤(禁止)作爲谷歌forbis機器人來訪問它的結果

你必須改變用戶代理字符串,如果你想這樣做

doc = Jsoup.connect("http://www.google.com/search?hl=en&q=http%3A%2F%2Fwww.cmu.edu%2Fsilicon-valley%2F+faculty+directory").header("User-Agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17").get()應該按預期工作,但可能是對谷歌的使用條款。

+0

看到我的更新。這不是問題。即使使用'agent()',它也不起作用。 –

+0

我的請求已經過測試,然後發佈......'Jsoup.connect(「http://www.google.com/search?hl=zh-CN&q=http%3A%2F%2Fwww.cmu.edu%2Fsilicon-valley %2F + faculty + directory「)。header(」User-Agent「,」Mozilla「).get()'適用於我, – Grooveek

+0

您是否嘗試過直接使用我的請求?不用理解爲什麼你的代碼甚至可以編譯,因爲它的中間有雙引號 – Grooveek