有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java从Wikipedia信息框获取特定信息

我试图在右侧的信息框中获取最新版本的详细信息。我试图通过使用jsoup刮取this page来从框中检索“6.2 (Build 9200) / August 1, 2012; 7 years ago

我有代码可以从框中提取所有数据,但我不知道如何提取框的特定部分

org.jsoup.Connection.Response res = Jsoup.connect("https://en.wikipedia.org/wiki/Windows_Server_2012").execute();
String html = res.body();
Document doc2 = Jsoup.parseBodyFragment(html);
Element body = doc2.body();
Elements tables = body.getElementsByTag("table");
for (Element table : tables) {
    if (table.className().contains("infobox")==true) {
        System.out.println(table.outerHtml());
        break;
    }
}

共 (1) 个答案

  1. # 1 楼答案

    您可以查询包含链接的表行,该链接以^{结束:

    String url = "https://en.wikipedia.org/wiki/Windows_Server_2012";
    try {
        Document document = Jsoup.connect(url).get();
        Elements elements = document.select("tr:has([href$=Software_release_life_cycle])");
        for (Element element: elements){
            System.out.println(element.text());
        }
    }
    catch (IOException e) {
        //exception handling
    }
    

    这就是为什么,通过查看完整的html,我发现您需要的行(您需要的行-这是一个重要的细节!-)是这样形成的。实际上elements实际上只包含一个Element

    最后,只提取文本。此代码将打印:

    Latest release 6.2 (Build 9200) / August 1, 2012; 7 years ago (2012-08-01)[2]
    

    如果你需要更多的改进,你可以随时修改它

    希望我能帮忙

    selector syntax reference