![](/img/trans.png)
[英]Java Jsoup: How should I extract the following data point from this html?
[英]Java: how can I use Jsoup to extract a particular data from html?
基本上,我試圖從此鏈接中提取股票的當前價格
通過查看頁面源,我希望能夠從中提取數字:
<meta itemprop="price"
content="31.40" />
這是我的Java代碼。
public double getCurrentPrice() throws IOException{
String url = "https://www.google.com.hk/finance?q=0023&ei=yF14VYC4F4Wd0ASb64CoCw";
Document doc = Jsoup.connect(url).get();
Element content = doc.getElementById("meta");
}
而且我一直收到這個錯誤:
456.0Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Element cannot be resolved to a type
at application.Trade.getCurrentPrice(Trade.java:45)
at application.Trade.main(Trade.java:64)
該錯誤消息不是很有幫助。 我應該如何克服呢?
導入正確的類。 meta也不是一個id而是一個標簽。因此您不能使用getElementById
來獲取該元素。使用itemprop
屬性獲取此元素並通過content
屬性獲取值。
通配符僅從包中導入類。例如
import org.jsoup.*
將導入org.jsoup.nodes
但不導入org.jsoup.nodes.Element;
因為org.jsoup.nodes.Element
位於org.jsoup.nodes
包中。
例。
import java.io.IOException;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
public class example {
public static void main(String[] args) throws IOException {
String url = "https://www.google.com.hk/finance?q=0023&ei=yF14VYC4F4Wd0ASb64CoCw";
Document doc = Jsoup.connect(url).get();
Element content = doc.select("meta[itemprop=price]").first();
System.out.println(content.attr("content"));
}
}
輸出
31.40
編輯
知道應該導入哪些類.....
考慮這句話
Document doc
現在您正在創建Document對象,因此您應該導入Document類。如果您閱讀jsoup api ,則可以看到該類層次結構。
如您所見, Document
是org.jsoup.nodes
包的一類,因此您將類import org.jsoup.nodes.Document;
為import org.jsoup.nodes.Document;
。您必須閱讀api。 無論如何,像netbeans這樣的想法,eclipse會建議您一些易於導入的類,並且可以節省大量時間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.