Java 使用Jsoup提取数据

Java 使用Jsoup提取数据,java,html-parsing,jsoup,Java,Html Parsing,Jsoup,我正在使用jsoup从网站中的表中提取数据。使用Jsoup。我提到了一些问题和其他类似的问题,但它没有打印数据。有人能给我提供实现这一点所需的代码吗 public class TestClass { public static void main(String args[]) throws IOException { Document doc = Jsoup.connect("http://www.moneycontrol.com/stocks/marketstats/gainerlose

我正在使用jsoup从网站中的表中提取数据。使用Jsoup。我提到了一些问题和其他类似的问题,但它没有打印数据。有人能给我提供实现这一点所需的代码吗

public class TestClass
 {


public static void main(String args[]) throws IOException
{
Document doc = Jsoup.connect("http://www.moneycontrol.com/stocks/marketstats/gainerloser.php?optex=BSE&opttopic=topgainers&index=-1").get();

    for (Element table : doc.select("table.tablehead")) {
        for (Element row : table.select("tr")) {
            Elements tds = row.select("td");
            if (tds.size() > 6) {
                System.out.println(tds.get(0).text() + ":" + tds.get(1).text());
            }
        }
    }

如果要获取表的内容(非表头),则需要更改表的选择器:

for (Element table : doc.select("table.tbldata14"))
而不是

 for (Element table : doc.select("table.tablehead"))

一件重要的事情是在解析HTML时检查文档中的内容,因为它可能会出现以下问题: 1.该站点可能正在使用iFrame显示内容 2.通过Javascript显示内容
3.很少有网站有不允许jsoup解析的脚本,因此doc元素将包含随机数据

为了帮助您,查看您的代码可能会有所帮助……建议未经moneycontrol.com的明确书面许可,不允许此类行为。如果您得到他们的许可,请询问他们访问数据的首选API(由他们组织)。我注意到其中一个链接提到了RSS提要。这是一种比HTML更“机器友好”的信息形式。我想在表中列出排名靠前的信息。我必须稍微调整一下代码,但不知道我必须做什么,因为我是jsoup新手。它给了我一个索引越界异常,并说数组列表的大小是0。嗯,奇怪。重新检查代码,然后在选择器字符串中尝试
“table.bdrtpg”
。您也可以尝试
doc.select(“div.FL”)