如何使用JAVA从html页面获取表格

我正在开发一个项目,我试图从互联网上获取财务报表,并在JAVA应用程序中使用它们来自动创建比率和图表。

我使用的网站使用登录名和密码来访问表。
标签是TBODY,但html中还有另外两个TBODY。

如何使用java将我的表打印到txt文件,然后我可以在我的应用程序中使用? 最好的方法是什么,我应该阅读什么?

如果这是我的项目,我会考虑使用HTML解析器,比如jsoup (尽管其他的可用)。 jsoup网站有一个教程,在玩了一段时间之后,你会发现它很容易使用。

例如,对于像这样的HTML表:

在此处输入图像描述

jsoup可以像这样解析它:

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 TableEg { public static void main(String[] args) { String html = "http://publib.boulder.ibm.com/infocenter/iadthelp/v7r1/topic/" + "com.ibm.etools.iseries.toolbox.doc/htmtblex.htm"; try { Document doc = Jsoup.connect(html).get(); Elements tableElements = doc.select("table"); Elements tableHeaderEles = tableElements.select("thead tr th"); System.out.println("headers"); for (int i = 0; i < tableHeaderEles.size(); i++) { System.out.println(tableHeaderEles.get(i).text()); } System.out.println(); Elements tableRowElements = tableElements.select(":not(thead) tr"); for (int i = 0; i < tableRowElements.size(); i++) { Element row = tableRowElements.get(i); System.out.println("row"); Elements rowItems = row.select("td"); for (int j = 0; j < rowItems.size(); j++) { System.out.println(rowItems.get(j).text()); } System.out.println(); } } catch (IOException e) { e.printStackTrace(); } } } 

导致以下输出:

 headers ACCOUNT NAME BALANCE row 0000001 Customer1 100.00 row 0000002 Customer2 200.00 row 0000003 Customer3 550.00