Распарсить html при помощи Jsoup

205
13 мая 2017, 18:44

У меня есть форма постов на форуме который мне надо распарсить:

  <tr> 
   <td class="icon_cell"><img src="/forum/images/message.gif" alt=""></td> 
   <td class="postslisttopic"> <a href="http://www.some_site.ru/forum/ссылка_которая_мне_нужна">Заголовок который мне нужен</a> &nbsp; <a class="newTopic" href="http://www.some_site.ru/forum/actualutils.aspx?action=gotonew&amp;tid=1185343">[new]</a> </td> 
   <td class="altCol"> <a href="http://www.some_site.ru/forum/memberinfo.aspx?mid=226937"> Stat-mate </a> </td> 
   <td style="text-align:center">13</td> 
   <td style="text-align:center">1531</td> 
   <td style="text-align:center" class="altCol">9 май 17, 00:25</td> // и вот эта дата тоже
  </tr> 

Мне нужно вытащить ссылку которая идет после <td class="postslisttopic"> <a href= и заголовок который после нее Заголовок который мне нужен (3яя строка) И еще дату в предпоследней строке 9 май 17, 00:25

И мне не очень понятно как решать с ключами вопрос, вот я пишу:

final Document document = Jsoup.connect("http://www.some_site.ru/forum").get();

И дальше я должен по идее как то вот указать что мне надо:

Elements tr = document.select("<td class=\"postslisttopic\">");

В общем что-то у меня тут все разваливается, помогите разобраться что тут должно быть? Чтобы мне распарсить это в класс с полями:

/**
 * Header of post.
 */
private final String header;  //Заголовок который мне нужен
/**
 * Author of post.
 */
private final String url; //"http://www.some_site.ru/forum/ссылка_которая_мне_нужна"
/**
 * Create date of post.
 */
private final Timestamp create; //9 май 17, 00:25
Answer 1

Используя Jsoup#select() метод ты должен использавать CSS селекторы. В твоем случае это будет выглядит так:

Document document = Jsoup.connect("https://www.w3schools.com/html/html_tables.asp").get();
String url = document.select(".postslisttopic > a").get(0).attr("href");
String header = document.select(".postslisttopic > a").get(0).text();
String stringDate = document.select(".altCol").text();

Для парсинга даты смотри сюда: http://stackoverflow.com/questions/26642720/proper-russian-month-string-translation-java

READ ALSO
Помогите разобраться с DialogFragment в android

Помогите разобраться с DialogFragment в android

Стоит задача - реализовать в приложении alertDialog по нажатию на экранВ принципе это я сделал, оно работает:

334
Как узнать IP адрес устройства?

Как узнать IP адрес устройства?

Сервер, на который я отправляю запрос определяет мой IP, а как получить этот IP программно, чтобы потом сравнить?

257
Как отключить &ldquo;тень&rdquo; при свайпе?

Как отключить “тень” при свайпе?

Когда тянешь пальцем экран вертикально, дотягиваешь до края и тянешь дальше, начинает проявляться полукруглая теньЕсть ли возможность её отключить?

190
String содержит запись PKCS7 как привести в читабельный вид

String содержит запись PKCS7 как привести в читабельный вид

Привет уважаемое комьюнити, есть некоторый код на Java, сей код включает в себя переменную типа String, которая в свою хранит следующее содержимое:

224