JSoup:难以提取单个元素
JSoup: Difficulty extracting a single element
对于我的大学编码项目,我的任务是从互联网上获取比特币的实时价值并将其整合到一个 mini 中 "bitcoin program."问题是我很难从某些人那里提取比特币的价值网站。任何帮助将不胜感激。
我试过使用不同的网站,结果好坏参半。
示例 1
final String url = "https://www.coindesk.com/price/bitcoin";
try
{
Document doc = Jsoup.connect(url).get();
Element ele = doc.select("span.currency-price").first();
final String words = ele.text();
System.out.println(words);
}
catch(Exception ex)
{
ex.printStackTrace();
}
示例 2
final String url = "https://cointelegraph.com/bitcoin-price-index";
try
{
Document doc = Jsoup.connect(url).get();
Element ele = doc.select("div.price-value").first();
final String words = ele.text();
System.out.println(words);
}
catch(Exception ex)
{
ex.printStackTrace();
}
示例 1 的结果是 java.lang.NullPointerException
在 com.mycompany.test.Test.main(Test.java:28)
示例 2 运行 没有错误。
站点 https://www.coindesk.com/price/bitcoin
在呈现内容时严重依赖 JavaScript。 Jsoup 无法执行 JavaScript。它只能解析原始 HTML 文档。
要查看 Jsoup 看到的内容,请尝试在禁用 JavaScript 的情况下访问此页面。您会看到该页面缺少主要内容。或者访问此页面并按 Ctrl+U 在 JavaScript 修改之前检查页面源代码。
使用 Chrome 的调试器(网络选项卡),您可以看到它发出额外的 AJAX 请求,以从 URL 获取 JSON 中的当前汇率:https://production.api.coindesk.com/v1/exchangeRates
然后 JavaScript 用于为该数据创建动态 HTML 元素。它还请求其他几个 URL 来获取图形数据。
Jsoup 无法解析此页面,因为在具有 react-app
ID 的 div
中有一个额外的 "</div>"
。您可以报告 this
这样的错误
对于我的大学编码项目,我的任务是从互联网上获取比特币的实时价值并将其整合到一个 mini 中 "bitcoin program."问题是我很难从某些人那里提取比特币的价值网站。任何帮助将不胜感激。
我试过使用不同的网站,结果好坏参半。
示例 1
final String url = "https://www.coindesk.com/price/bitcoin";
try
{
Document doc = Jsoup.connect(url).get();
Element ele = doc.select("span.currency-price").first();
final String words = ele.text();
System.out.println(words);
}
catch(Exception ex)
{
ex.printStackTrace();
}
示例 2
final String url = "https://cointelegraph.com/bitcoin-price-index";
try
{
Document doc = Jsoup.connect(url).get();
Element ele = doc.select("div.price-value").first();
final String words = ele.text();
System.out.println(words);
}
catch(Exception ex)
{
ex.printStackTrace();
}
示例 1 的结果是 java.lang.NullPointerException 在 com.mycompany.test.Test.main(Test.java:28)
示例 2 运行 没有错误。
站点 https://www.coindesk.com/price/bitcoin
在呈现内容时严重依赖 JavaScript。 Jsoup 无法执行 JavaScript。它只能解析原始 HTML 文档。
要查看 Jsoup 看到的内容,请尝试在禁用 JavaScript 的情况下访问此页面。您会看到该页面缺少主要内容。或者访问此页面并按 Ctrl+U 在 JavaScript 修改之前检查页面源代码。
使用 Chrome 的调试器(网络选项卡),您可以看到它发出额外的 AJAX 请求,以从 URL 获取 JSON 中的当前汇率:https://production.api.coindesk.com/v1/exchangeRates
然后 JavaScript 用于为该数据创建动态 HTML 元素。它还请求其他几个 URL 来获取图形数据。
Jsoup 无法解析此页面,因为在具有 react-app
ID 的 div
中有一个额外的 "</div>"
。您可以报告 this