我想在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
”。
编辑:我的程序中有以下技巧,因此bot-rule不是问题:
.userAgent("Mozilla")
答案 0 :(得分: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()
应按预期工作,但可能违反Google的使用条款。