gpt4 book ai didi

java - 在 Google Chrome 中工作的 URL 无法通过 Java w/Jsoup 访问?

转载 作者:行者123 更新时间:2023-12-02 06:48:14 24 4
gpt4 key购买 nike

我遇到了一个非常令人困惑的问题。我实际上只做了一天的网络工作,所以请原谅我,如果我犯了一个愚蠢的错误,我深表歉意。我的问题是,我无法以编程方式访问 URL,而我可以通过复制粘贴到 Chrome 中来访问该 URL。

我正在使用一个名为 jsoup ( http://jsoup.org/apidocs/ ) 的库,它从网站的原始 html 中解析文本。我的总体目标是使用一个基本网址,我可以在其中附加一个字符串,并从中获取一个网页。我正在使用代码(对于那些要求更多代码的人进行编辑,我知道这仍然很稀疏,但这是错误之前的唯一代码)

String url = "https://www.google.com/search?q=definition+of+";
url += search; //search is the passed in string
Document doc = Jsoup.connect(url).get(); //url is the String in question

获取网页。我的最终目标是当您搜索单词的定义时,使用此方法获取 chrome 搜索顶部框的文本。即顶部的框:https://www.google.com/search?q=definition+of+apple

但是,当我尝试使用上面的链接作为我的网址时,我遇到了一个问题,因为我收到了 org.jsoup.HttpStatusException,所以我认为这是一个网络问题。是什么原因导致这个 url 在 chrome 中输入时有效,但在 Java 中却无效? (我也不反对以不同的方式获取该框中的信息,因为我当前的方法感觉有点迂回)

完整的错误消息(已编辑)

Exception in thread "main" org.jsoup.HttpStatusException: HTTP error fetching URL. Status=403, URL=https://www.google.com/search?q=definition+of+apple
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:435)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:410)
at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:164)
at org.jsoup.helper.HttpConnection.get(HttpConnection.java:153)
at test.Test.parseDef(Test.java:68)
at test.Test.main(Test.java:112)

无论是谁回答,感谢您花时间帮助网络新手!

最佳答案

最有可能的是,Google 准确地将您的程序识别为“机器人”并采取相应行动。 Google 鼓励机器人使用 Google Custom Search API并阻止他们使用以人为本的搜索界面。

事实上,所有网络蜘蛛都应该检查 robots.txt,对吗?这是谷歌的:http://www.google.com/robots.txt 。请注意,不允许使用/search。

请参阅此问题以获取更多信息。这基本上是你的问题的Python版本。 Why does Google Search return HTTP Error 403?

关于java - 在 Google Chrome 中工作的 URL 无法通过 Java w/Jsoup 访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18360009/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com