【发布时间】:2015-06-22 02:38:26
【问题描述】:
尝试练习使用 JSoup 从表中提取数据。无法弄清楚为什么我不能从
中提取“未偿还股票”字段https://finance.yahoo.com/q/ks?s=AAPL+Key+Statistics
这是 's' 是 AAPL 的两次尝试:
public class YahooStatistics {
String sharesOutstanding = "Shares Outstanding:";
public YahooStatistics(String s) {
String keyStatisticsURL = ("https://finance.yahoo.com/q/ks?s="+s+"+Key+Statistics");
//Attempt 1
try {
Document doc = Jsoup.connect(keyStatisticsURL).get();
for (Element table : doc.select("table.yfnc_datamodoutline1")) {
for (Element row : table.select("tr")) {
Elements tds = row.select("td");
for (Element td : tds.select(sharesOutstanding)) {
System.out.println(td.ownText());
}
}
}
}
catch (IOException ex) {
ex.printStackTrace();
}
//Attempt 2
try {
Document doc = Jsoup.connect(keyStatisticsURL).get();
for (Element table : doc.select("table.yfnc_datamodoutline1")) {
for (Element row : table.select("tr")) {
Elements tds = row.select("td");
for (int j = 0; j < tds.size() - 1; j++) {
Element td = tds.get(j);
if ((td.ownText()).equals(sharesOutstanding)) {
System.out.println(tds.get(j+1).ownText());
}
}
}
}
}
catch(IOException ex) {
ex.printStackTrace();
}
尝试返回:构建成功,仅此而已。
我在浏览器上禁用了 JavaScript,但表格仍然显示,所以我假设这不是用 JavaScript 编写的,而是用 HTML 编写的。
欢迎提出任何建议。
【问题讨论】:
标签: java html-parsing jsoup