簡體   English   中英

JSOUP Java Web抓取/解析

[英]JSOUP Java Web Scraping / Parsing

我希望創建一個提交1個鏈接的程序,然后從該鏈接中提取某些功能(例如,下載計數,likecount等)。 我可以提取這些很好的內容,因為它們只是標題。 但是我不明白如何在另一個鏈接中提取鏈接的標題。 舉個例子,如果我輸入google.com,我希望提取標題“顯示X找到的結果數量”,這是另一個鏈接,但是X不是靜態的(即鏈接的標題不是靜態的,它根據結果​​數(在我的情況下為運行)進行更改)

為了更好地解釋我的代碼是:

import org.jsoup.Jsoup;


public static void main(String[] args) throws Exception {
    String url = "https://www.openml.org/t/31";
    Document document = Jsoup.connect(url).get();

   // String question = document.select("#question .post-text").text();
   // System.out.println("Question: " + question);

    Elements title = document.select("div#subtitle");
    System.out.println("Title:  " + title.text()); 

    Elements downloadcount = document.select("span#downloadcount");
                System.out.println(downloadcount.text());

    Elements likecount = document.select("span#likecount");
                System.out.println(likecount.text());

    Elements nr_of_issues = document.select("span#nr_of_issues");
                System.out.println(nr_of_issues.text());      

    String runs = ("<i class=\"fa fa-star\"></i> <a href=\"#taskruns\" data-toggle=\"tab\">396900 runs submitted</a>");
    Document number = Jsoup.parse(runs);

            Element link = number.select("a").first();
            String linkText = number.text();
            System.out.println(linkText);
        }
 }

標題,downloadcount,likecount和nr_of_issues可以正常工作,因為它們不是鏈接。 只是“運行”不起作用。 我無法實現String那樣運行的HTML代碼,因為它總是在變化( 如您現在所看到的396900 ,但是明天將其更改為400000怎么辦?)

根據我對OP的評論,您可以看到我們要引用的文本不是靜態的,但是在其上方有一個元素,該元素具有id =“ detail”。

網站HTML中的元素位置

我們需要引用父元素,然后從中獲取子元素,並假設子元素始終作為第一個子div元素的子元素保持(希望Inception並不是一部令人困惑的電影)。

這是我們在Java中的方法:

public static void main(String[] args) throws Exception {
    String url = "https://www.openml.org/t/31";
    Document doc = Jsoup.connect(url).get();

    Element parentElement = doc.select("div#detail").first();
    Elements h2Element = parentElement.child(1).select("h2");
    System.out.println(h2Element.text());
}

運行上面的Java將打印:

396928運行

暫無
暫無

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

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