Я учусь использовать JSoup и для этого я начал с сайта, который содержит футбольные матчи. Я плохо разбираюсь в html, и это может быть проблемой, во всяком случае, я проверил код сайта, чтобы понять, как получить нужную мне информацию. Он отлично работает с начальной страницы, вот мой код:
import java.net.URL;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class JSoup_example {
public static void main(String[] args) {
try {
Document doc = Jsoup.parse(new URL("https://www.bwin.it/sportsbook.aspx"), 1000000);
Elements resultLinks = doc.select("tr.normal");
//System.out.println(doc);
System.out.println(resultLinks.size());
for (Element link : resultLinks) {
System.out.println(link.select("td.label").first().text() + " - " + link.select("td.label").last().text());
System.out.println();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
Но у меня возникают проблемы, если я пытаюсь почистить другую страницу того же сайта, например:
https://www.bwin.it/calcio
, который после проверки кода выглядит точно так же, как и первый.
После многих попыток я проверил элемент centra в своем браузере (Chrome) и обнаружил, что в таблице, содержащей данные, которые мне нужны, атрибут «baseURI» установлен следующим образом:
https://www.bwin.it/betViewIframe.aspx?SportID=4&bv=bb&selectedLeagues=0
Если я добавлю эту ссылку в мой код, она будет работать, как и ожидалось, но я не понимаю, почему она не работает с предыдущей ссылкой. Итак, мои вопросы:
Что я делаю не так?
Есть ли лучший способ получить ссылку на таблицу, в которой он выполняется вручную?
Спасибо за помощь.