Пытается практиковать извлечение данных из таблиц с помощью JSoup. Не могу понять, почему я не могу тянуть поле «акций в обращении» отИзвлечение данных таблицы с помощью JSoup на Yahoo Finance
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();
}
вернуться Попытки: BUILD УСПЕШНЫЙ и ничего больше.
Я отключил JavaScript в своем браузере, и таблица все еще отображается, поэтому я предполагаю, что это не написано на JavaScript, а на HTML.
Любые предложения приветствуются.
Спасибо. Я пытаюсь понять, но все еще смущен. В таблице, на которую я ссылаюсь, есть элементы «tr» и «td». Кроме того, когда я пытаюсь просто изменить «Элементы» на «Элемент» выше, я возвращаю «несовместимую ошибку типа». – Nikolas
Сделано редактирование. Надеюсь, я приближаюсь. Я все еще ничего не возвращаю. – Nikolas
Я понимаю разницу в Элементе/Элементах. Удивительное объяснение. ... Сделал еще несколько изменений на основе комментариев и отредактировал объяснение. – Nikolas