2013-01-22 204 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