2015-10-28 8 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); 
} 

Я хотел бы получить на выходе, как: Marek Hudec, Dávid 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

это всего лишь пример для одного вида разбора, webpages/html настолько отличается в юниверсе, что вы не можете написать для него универсальный код, хотя я бы рекомендовал посмотреть на 'apache nutch' +' apache tika' для вашего требования. –

+0

Структура других html 's как этот ... только разница дата и имя автора. Но класс div и класс p равны этому. –

Смежные вопросы