java - Http POST 请求不起作用

标签 java http jsoup

我想在 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/

相关文章:

java/ eclipse : starting a new JVM in Debug mode

java - 无法启动 LibGDX 工具 2D 粒子编辑器

Java 双加四舍五入

java - Netty:如何重用相同的 `FullHttpResponse` ?

android - 是否有用于指定设备类型、操作系统版本、应用程序版本等的移动 http 请求的标准 header ?

php - 读取标题后中止上传大文件

java - 如何使用 jsoup post 请求提交没有按钮名称的表单

java - 如何使用 if/else 树中的变量值作为随后 while 循环的变量值

java - 如何在jsoup解析中选择类

java - 如何从html表及其内部表中提取数据?