在Google chrome中工作的Url是否可被Java w/Jsoup访问?
我有一个相当令人困惑的问题。我实际上只做了一天的网络,所以请原谅我,如果我犯了一个愚蠢的错误,我道歉。我的问题是,我无法以编程方式访问URL,而我可以通过复制粘贴到chrome中来访问URL 我正在使用一个名为jsoup()的库,它从网站的原始html中解析文本。我的目标通常是使用一个基本url,我可以将一个字符串附加到该url,并从中获取一个网页。我正在使用代码(为那些要求更多代码的人编辑,我知道这仍然是稀疏的,但这是错误之前唯一的代码) 获取网页。我的最终目标是在搜索单词定义时,使用此方法获取chrome搜索顶部框的文本。即此处顶部的框: 然而,当我尝试使用上面的链接作为我的url时,我遇到了一个问题,因为我得到了org.jsoup.HttpStatusException,所以我认为这是一个网络问题。是什么导致这个url在chrome中输入时工作,而不是在Java中?(我也不会反对以不同的方式获取该框中的信息,因为我目前的方法有点迂回) 完整的错误消息(在中编辑)在Google chrome中工作的Url是否可被Java w/Jsoup访问?,java,google-chrome,exception,networking,jsoup,Java,Google Chrome,Exception,Networking,Jsoup,我有一个相当令人困惑的问题。我实际上只做了一天的网络,所以请原谅我,如果我犯了一个愚蠢的错误,我道歉。我的问题是,我无法以编程方式访问URL,而我可以通过复制粘贴到chrome中来访问URL 我正在使用一个名为jsoup()的库,它从网站的原始html中解析文本。我的目标通常是使用一个基本url,我可以将一个字符串附加到该url,并从中获取一个网页。我正在使用代码(为那些要求更多代码的人编辑,我知道这仍然是稀疏的,但这是错误之前唯一的代码) 获取网页。我的最终目标是在搜索单词定义时,使用此方法获
对于任何回答的人,感谢你花时间帮助一位网络新手 如果使用Jsoup,则必须将空格替换为%20,而不是+ 请尝试以下url:
最有可能的是,谷歌准确地将你的程序识别为“机器人”,并据此采取行动。谷歌鼓励机器人使用搜索界面,不鼓励机器人使用面向人类的搜索界面 事实上,所有的网络蜘蛛都应该检查robots.txt,对吗?这是谷歌的:。请注意,不允许使用/搜索
有关更多信息,请参见此问题。这基本上是你问题的python版本 异常消息是什么?特别是,谷歌给了你什么样的HTTP错误?他们可能想要一个
用户代理
。你能提供更多的代码吗。基于一行代码很难识别。嗨@thatsilogical,我也有同样的问题。您能找到解决方案吗?不幸的是,它导致了完全相同的问题:(好的,我现在明白我的错误背后的原因了,但我一直在程序的不同部分使用Google search API,我没有使用它的原因是因为我无法在搜索顶部获得简明的框,只有实际的搜索结果。有没有一种我不知道的方法可以做到这一点?//用你想要的url替换链接;//要使用它,您必须下载jsoup-latest-version.jar并包含在库中//doc将包含该请求的响应。
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
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)
String url = "https://www.google.com/search?q=definition%20of%20";
url += search; //search is the passed in string
Document doc = Jsoup.connect(url).get();
public static void main(String[] args) {
Document doc = Jsoup.connect(link)
.data("query", "Java")
.userAgent("Mozilla")
.cookie("auth", "token")
.timeout(1000)
.post();
}