当前位置: 首页 > 知识库问答 >
问题:

403错误,而获得谷歌结果使用jSoup[重复]

祝宏放
2023-03-14

我正在尝试使用以下代码获取Google结果:

Document doc = con.connect("http://www.google.com/search?q=lakshman").timeout(5000).get();

但是我得到了这个例外:

org.jsoup.HttpStatusException: HTTP error fetching URL. Status=403,URL=http://www.google.com/search?q=lakshman

403错误意味着服务器禁止访问,但我可以很好地在Web浏览器中加载此URL。为什么J汤会出现403错误?

共有3个答案

凌展
2023-03-14

实际上,您可以通过添加用户代理来避免403错误

doc = Jsoup.connect(url).timeout(timeout)
                    .userAgent("Mozilla")

但我认为这违反了谷歌的政策。

编辑:谷歌捕捉机器人的速度比你想象的要快。但是,您可以将其用作临时解决方案。

劳仲渊
2023-03-14

谷歌不允许机器人,你不能使用jsoup连接谷歌。您可以使用Google Web Search API(已弃用),但您每天可能发出的请求数量将受到限制。

罗浩然
2023-03-14

您只需要将UserAgent属性添加到HTTP标头,如下所示:

Jsoup.connect(itemUrl)
     .userAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.152 Safari/537.36")
     .get()
 类似资料:
  • 我已经成功安装并运行了名为DriveCommandLine的Google Drive快速启动应用程序。我还对它进行了一些修改,以获取我的驱动器帐户中的一个文件的文件信息。 我现在想做的是以某种方式保存凭证并重用它们,而无需用户每次都访问网页来获得授权码。我已经查看了该页面,其中包含检索和使用OAuth 2.0凭证的说明。为了使用示例类(MyClass ),我修改了DriveCommandLine中

  • 我正在使用请求将文件上传到谷歌云存储。 请求是: 我得到以下错误作为响应: 我在某处读到,我需要打开谷歌云存储JSON API。是否必须打开谷歌云存储JSON API,或者是否有其他解决方案来修复此错误?

  • 我正在使用jsoup库,今天我遇到了一个问题。我必须刮取DuckDuckGo并为每个页面获取查询结果的所有标题,但使用 我只得到关于第一页的结果。我怎样才能继续下一页?

  • 问:有可能为谷歌云从Terraform创建以存储域为中心的存储/桶吗?

  • 问题内容: 我正在尝试使用JSoup从Google抓取搜索结果。目前这是我的代码。 我只是想获取搜索结果的标题以及标题下方的摘录。是的,我只是不知道要搜寻这些元素要查找哪些元素。如果有人有更好的方法使用Java抓取Google,我想知道。 谢谢。 问题答案: 干得好。 另外,要自己完成此操作,我建议您使用chrome。您只需右键单击要刮取的任何内容,然后检查元素。它将带您到该元素位于html的确切

  • 我看过其他类似的帖子,但没有明显的跳出。如果我错过了,我相信有人会给我指出正确的方向! 问题是我的应用程序中的此代码曾经有效,但不再有效。所以我假设网站发生了变化。我在同一个应用程序中为其他三个网站使用完全相同的代码,它们运行良好。LOGCAT显示以下错误: org.jsoup.HttpStatusException:获取URL时出现HTTP错误。status=403, URL=http://no