0

我想在 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();

我在这里想念什么?

编辑不工作意味着谷歌没有返回我们从浏览器看到的任何结果。

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")
4

1 回答 1

3

Jsoup.connect("http://www.google.com/search?hl=en&q=http%3A%2F%2Fwww.cmu.edu%2Fsilicon-valley%2F+faculty+directory")导致 403 错误(禁止),因为谷歌禁止机器人访问其结果

如果您想这样做,您必须更改用户代理字符串

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 的使用条款。

于 2013-01-22T10:26:50.313 回答