JSoup和网站我不能刮

时间:2011-11-23 11:16:42

标签: java screen-scraping jsoup

我正在学习使用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

,在检查代码后,看起来与第一个完全一样。 经过多次尝试,我用我的浏览器(Chrome)检查了centra元素,发现包含我想要的数据的表的属性“baseURI”设置如下:

https://www.bwin.it/betViewIframe.aspx?SportID=4&bv=bb&selectedLeagues=0

如果我将该链接放在我的代码中,它会按预期工作,但我不明白为什么它不适用于上一个链接。所以我的问题是:

我做错了什么?

有没有更好的方法来检索手动执行该表的链接?

感谢您的帮助。

0 个答案:

没有答案