1

我的问题如下:我想从使用 JSoup 从网站下载的 html 文件中提取一个表,并将其作为 csv 文件返回。(数据为历史股价)。

这是网站: http ://www.finanzen.ch/kurse/historisch/Actelion/VIRTX/12.6.2013_17.9.2013

它是德语的,所以我希望这没问题。我想提取包含所有数字的表格。

到目前为止,我得到了以下代码:

    Document doc = Jsoup.connect("http://www.finanzen.ch/kurse/historisch/Actelion/VIRTX/12.6.2013_17.9.2013").get();

    for (Element table : doc.select("table.Historische Kurse Actelion Ltd.*")) {
        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());
            }
        }
    }

我从另一篇 StackOverflow 文章中获得了这段代码。问题是我对 JSoup 一无所知,而且我对 Java 编程还很陌生。非常感谢您的帮助。

4

1 回答 1

4

尝试这个

import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class Test {

    public static void main(String[] args) {

        String url = "http://www.finanzen.ch/kurse/historisch/Actelion/VIRTX/12.6.2013_17.9.2013";
        Document doc;
        try {
            doc = Jsoup.connect(url).get();
            Element table = doc
                    .select("div.mainwrapper div.main_background div.main_left")
                    .get(0).child(3);
            Elements rows = table.select("tr");

            Elements ths = rows.select("th");

            String thstr = "";
            for (Element th : ths) {
                thstr += th.text() + " ";
            }
            System.out.println(thstr);

            for (Element row : rows) {
                Elements tds = row.select("td");
                for (Element td : tds) {
                    System.out.println(td.text());  // --> This will print them
                                                    // individually
                }
                System.out.println(tds.text()); // --> This will print everything
                                                // in the row
            }
            // System.out.println(table);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}
于 2013-09-17T11:36:49.247 回答