我想在 Google 查询框中搜索以下内容:
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();
我在这里缺少什么?
编辑:不工作意味着 Google 没有返回我们从浏览器看到的任何结果。
Jsoup.connect("http://www.google.com/search?hl=en&q=http%3A%"%2F%%2F%www.cmu.edu%2F%silicon-valley%2F%20faculty").get();
上面的代码可以工作。它相当于谷歌搜索“http://www.cmu.edu/silicon-valley/faculty
”。
编辑:我的程序中有以下技巧,因此机器人规则不是问题:
.userAgent("Mozilla")
最佳答案
Jsoup.connect("http://www.google.com/search?hl=en&q=http%3A%2F%2Fwww.cmu.edu%2Fsilicon-valley%2F+faculty+directory")
导致 403 错误(禁止),因为 google 禁止机器人访问其结果
如果您想这样做,您必须更改用户代理字符串
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()
应该可以工作正如预期的那样,但可能违反 Google 的使用条款。
关于java - Http POST 请求不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14456117/