2012-06-21 3 views
1

Я пытаюсь получить результаты этого кода так:Java Jsoup webscraping

Название: Бен 10 Ultimate чужеродных

комментарий: taseen_shafquattaseen_shafquat: существует ли идти на сезон 4 для этой серии

название: Akira

комментарий: dragon3476dragon3476: один из моих самых избр анимации отлично немного о работе и о моем 300 часов , Я до сих пор получил Orginal плакат с момента, когда он вышел + DVD и VID и даже футболку, так что да я не мог сказать ничего плохого о такой большой анимации 5/5

Но, Я получаю этот путь вместо этого:

название: Бен 10 Ultimate чужеродных

название: taseen_shafquattaseen_shafquat: существует ли идти на сезон 4 для этой серии

название: Akira

Название: dragon3476dragon3476: один из моих самых избр анимации отлично немного о работе и о моем 300 часов, я все еще получил Orginal плакат с момента, когда он вышел + DVD и VID и даже т -shirt так что да я не мог ничего плохого сказать о такой большой анимации 5/5

Код

import org.jsoup.Jsoup; 
import org.jsoup.nodes.Document; 
import org.jsoup.nodes.Element; 
import org.jsoup.nodes.Node; 
import org.jsoup.select.Elements; 

import java.io.*; 
import java.util.List; 

public class WebScraper { 

    public static void main(String[] args) throws Exception { 
     String url = "http://www.1channel.ch/latest_comments.php"; 
     Document doc = Jsoup.connect(url).get(); 
     for (Element E : doc.select("div.latest_comments > a, div.latest_comments > p")) { 

     System.out.print("title: "+ E.getElementsByTag("a").text()); 
     System.out.println( E.getElementsByTag("p").text()); 
      // System.out.println(T); 
      System.out.print("\n"); 

      try 
      { 
      PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("/Users/samualdoku/Desktop/Twitter/scraped.txt", true))); 
      out.println(E.text()); 
      out.close(); 
      } catch (IOException e) { 
      } 
     } 

    } 

} 

И это html, который я пытаюсь очистить. Я думаю, что проблема связана с тегом href внутри span. Он содержит имена пользователей комментария. Я назвал getElementsByTag("a") для названия, потому что заголовок находится в теге привязки. Как мне избавиться от тега span, потому что он печатает заголовок перед именами пользователей, которых не должно быть так.

<div class="latest_comments com_class_tv"> 
    <a href="/tv-2733767-Dallas/season-1-episode-3">Dallas</a> 
    (6 minutes ago) 
    <p> 
     <span class="latest_comments_poster"> 
      <a href="/profile/jowar">jowar</a> 
      : 
     </span> 
     i just started watchin...eeing as its 34nyrs old 
    </p> 
</div> 

ответ

0

Попробуйте

public static void main(String[] args) throws Exception { 
String url = "http://www.1channel.ch/latest_comments.php"; 
Document doc = Jsoup.connect(url).get(); 
for (Element E : doc.select("div.latest_comments)) { 

    System.out.print("title: "+ E.select("a").text()); 
    System.out.println("comment: " + E.select("p").text()); 

} 
} 
+0

Спасибо! хорошо работал! – user872009