Получить конкретную информацию из информационного окна Википедии - PullRequest
0 голосов
/ 04 октября 2019

Я пытаюсь получить информацию о последнем выпуске в информационном окне справа. Я пытаюсь извлечь "6.2 (Build 9200) / August 1, 2012; 7 years ago" из коробки путем очистки этой страницы с помощью jsoup.

У меня есть код, который извлекает все данные из ящика, но я не могу понять, как извлечь определенную часть ящика.

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 Ответ

0 голосов
/ 04 октября 2019

Вы можете запросить строку таблицы, которая содержит ссылку, которая оканчивается на Software_release_life_cycle:

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]

Если вам нужно еще больше уточнений, вы всегда можете substring.

Надеюсь, я помог!

( синтаксис селекторассылка )

...