繁体   English   中英

Java是否从站点提取表数据?

[英]Java Pull Table Data from Site?

我是Java的新手,最近开始学习如何使用Java从网站读取HTML,但是我一直在尝试学习如何通过Java解析和提取元素(有用数据)。 我一直在寻找实现此目的的最佳方法,而Jsoup不断出现,因此我决定尝试一下。 我能够提取表元素,但是有很多无用的HTML可以很好地删除..我如何才能从该站点提取表,而仅使用row元素使用Jsoup?

String html = "http://beta.letsplaysoccer.com/facilities/26/teams/187822";

         Document doc = Jsoup.connect(html).get();
         Elements tableElements = doc.select("table");
         System.out.print(tableElements);

谢谢你的帮助!

编辑:无用的HTML,如标签,类名等。如果我要使用此表数据,我只想使用游戏日期或其他内容

<td> <a href="/facilities/26/games?exact_date=14-03-30">Sun 03-30-14 07:25 PM</a></td>

我最终想要做的就是将这些数据放入我自己的GUI或其他东西中

jsoup可以帮助您,但是您需要手动浏览所有HTML,这很麻烦……

例如,以下是一些打印在第一个表中得分的游戏的信息:

import java.io.IOException;
import java.util.List;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.nodes.Node;
import org.jsoup.select.Elements;
import org.junit.Test;

public class JSoupTest {

    @Test
    public void testJSoup() throws IOException {
        String html = "http://beta.letsplaysoccer.com/facilities/26/teams/187822";

        Document doc = Jsoup.connect(html).get();
        Elements tableElements = doc.select("table");

        Element firstTable = tableElements.get(0);

        List<Node> firstTableRows = firstTable.childNodes().get(1).childNodes();
        int numRows = firstTableRows.size();
        // skip first row as header
        for (int i = 1; i < numRows; i++) {
            Node row = firstTableRows.get(i);
            if (row instanceof Element) {
                Node homeTeam = row.childNode(5).childNode(1).childNode(0);
                Node visitorTeam = row.childNode(7).childNode(1).childNode(0);
                // some are in bold
                if(visitorTeam.childNodeSize() > 0 ){
                    visitorTeam = visitorTeam.childNode(0);
                }
                Node score = row.childNode(9).childNode(0);
                System.out.println(homeTeam + " vs " + visitorTeam + ": " + score);
            }
        }

    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM