簡體   English   中英

Java:如何使用Jsoup從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 ,則可以看到該類層次結構。

如您所見, Documentorg.jsoup.nodes包的一類,因此您將類import org.jsoup.nodes.Document;import org.jsoup.nodes.Document; 。您必須閱讀api。 無論如何,像netbeans這樣的想法,eclipse會建議您一些易於導入的類,並且可以節省大量時間。

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM