【发布时间】:2023-03-17 08:18:01
【问题描述】:
我正在创建一个应用程序,它使我能够从特定网站获取值到控制台。该值来自 <span> 元素,我正在使用 JSoup。
我的挑战与此错误有关:
获取网址时出错
这是我的 Java 代码:
public class TestSl {
public static void main(String[] args) throws IOException {
Document doc = Jsoup.connect("https://stackoverflow.com/questions/11970938/java-html-parser-to-extract-specific-data").get();
Elements spans = doc.select("span[class=hidden-text]");
for (Element span: spans) {
System.out.println(span.text());
}
}
}
这是控制台上的错误:
线程“main”org.jsoup.HttpStatusException 中的异常:获取 URL 的 HTTP 错误。状态=403,网址=Java Html parser to extract specific data? 在 org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:590) 在 org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:540) 在 org.jsoup.helper.HttpConnection.execute(HttpConnection.java:227) 在 org.jsoup.helper.HttpConnection.get(HttpConnection.java:216) 在 TestSl.main(TestSl.java:19)
我做错了什么,我该如何解决?
【问题讨论】:
-
403 Forbidden 错误是一个 HTTP 状态代码,这意味着由于某种原因绝对禁止访问您尝试访问的页面或资源。
-
所以在基本情况下,我无法获取该数据?也许使用一些替代品?还是服务器/网站不允许任何 HTML Phrasers 获取数据?
-
不确定该网站是否允许您使用 HTML 解析器。但 HTML 解析器很可能在端口 443 或 80 上工作,所以我认为情况并非如此。可能是您实现代码的方式......
-
谢谢。我还有一个问题。所以我尝试了谷歌(再次,跨度和它的类名)。我没有收到错误,但我的控制台上没有结果。我已经重新阅读了我的代码足够多次,但我无法弄清楚我哪里出错了。有什么建议吗?