дополнительный текст
Ваша проблема не имеет ничего общего с Jsoup. Он извлек значения точно так же, как в ячейках таблицы, и больше не может вам помочь. Теперь вы можете попытаться удалить текст, который вам не нужен, используя подстроку, поэтому замените строку
System.out.println(td.text());
на этот код:
String text = td.text();
if (text.contains("(")) {
text = text.substring(0, text.indexOf("(")-1);
}
System.out.println(text);
Она сохранит только текст до (
символ.
NullPointerException
Страница, которую вы анализируете, содержит много таблиц. Вы выполняете doc.select("tr")
, и это означает, что ваша переменная trs
содержит все tr
каждой таблицы на этой странице. Исключение возникает, когда ваш код встречает вторую таблицу со строкой заголовка, которая не содержит td
, потому что она выглядит следующим образом:
<tr>
<th style="padding:4px;background-color:#f0f0f0;width:10%;">SQL Server</th>
<th style="padding:4px;background-color:#f0f0f0;width:10%;">Analysis Services</th>
<th style="padding:4px;background-color:#f0f0f0;width:65%;">Description</th>
<th style="padding:4px;background-color:#f0f0f0;width:15%;">Release Date</th>
</tr>
Решение состоит в том, чтобы ограничить выбор только первой таблицей, поэтому заменить строку:
Elements trs = doc.select("tr");
на
Element firstTable = doc.select("table").first();
Elements trs = firstTable.select("tr");