JSoup и сайт, который я не могу почистить - PullRequest
1 голос
/ 23 ноября 2011

Я учусь использовать 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

Если я добавлю эту ссылку в мой код, она будет работать, как и ожидалось, но я не понимаю, почему она не работает с предыдущей ссылкой. Итак, мои вопросы:

Что я делаю не так?

Есть ли лучший способ получить ссылку на таблицу, в которой он выполняется вручную?

Спасибо за помощь.

...