我的问题如下:我想从使用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编程很新。我非常感谢你的帮助。
答案 0 :(得分:3)
试试这个
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();
}
}
}