2015-10-28 90 views
1
解析

有我的HTML輸入:作者與JSOUP

<!-- left panel --> 
    <div class="left-panel"> 
    <p class="article-published"> 1. júl 2015 o 17:35 &nbsp;&nbsp; Marek Hudec, Dávid Tvrdoň </p> 
    </div> 

,代碼:

if(doc.select("p[class=article-published]").isEmpty() == FALSE){ 
    Elements description = doc.select("p[class=article-published]"); 
    for (Element link : description) { 
     author4 = link.text(); 
    } 
    System.out.println("AUTHORS :" + author4); 
} 

我想獲得的輸出,如:馬立克鄔達克,大衛Tvrdoň。所以只有那些傢伙的名字。但我無法得到它。請有人幫助我。謝謝

+0

JSoup只能讓你得到你已經完成的標籤之間的內容。確定什麼是名字和什麼是日期對於JSoup來說不是問題。如果您提供的格式是一致的,那麼您可以跳過最初的日期和時間(您知道日期和時間會是什麼樣子,因此您可以找到它並在其後打印)。 – pushkin

+0

我應該驗證一下,你是否首先獲得了正確的內容(日期,時間,加上作者)還是其他的東西? – pushkin

+0

問題是,我沒有得到任何東西......只有空的輸出與上面的代碼。 –

回答

0

所有你需要做的是分析你Jsoup獲取文本和砍你從它想要的數據,在下面的代碼我修改您的代碼從具體指標數據。

import java.util.Arrays; 
import org.jsoup.Jsoup; 
import org.jsoup.nodes.Document; 
import org.jsoup.nodes.Element; 
import org.jsoup.select.Elements; 

public class KolosParsor { 
     public static void main(String[] args) { 
      String author4 = null; 
      Document doc = Jsoup.parse("<div class=\"left-panel\">"+ 
      "<p class=\"article-published\"> 1. júl 2015 o 17:35 &nbsp;&nbsp; Marek Hudec,Dávid Tvrdoň </p>"); 
      if(!doc.select("p[class=article-published]").isEmpty()){ 
       Elements description = doc.select("p[class=article-published]"); 
       for (Element link : description) { 
        author4 = link.text(); 
       } 
       System.out.println("DATA :" + Arrays.asList(author4.split(" "))); 
       System.out.println("AUTHORS :" + Arrays.asList(author4.split(" ")).get(7)); 
      }   
     } 
    } 
+0

但我需要,不僅要解析這個例子,而且還有很多...這只是其中的一個。所以我需要一個通用代碼來完成這一步驟。 –

+0

這只是一個有點解析,網頁/ HTML的例子是在宇宙中如此指出錯誤,你不能編寫通用的代碼吧,雖然我會建議看'阿帕奇nutch' +'阿帕奇tika'爲您的要求。 –

+0

其他html的結構是這樣的...唯一的區別是日期和作者姓名。但是div class和p class與此相同。 –