【问题标题】:Java Jsoup webscrapingJava Jsoup 网页抓取
【发布时间】:2012-06-22 01:19:17
【问题描述】:

我正在尝试以这种方式获取此代码的结果:

title: Ben 10 Ultimate Alien

comment:taseen_shafquattaseen_shafquat : 有没有第四季 这个系列

标题:阿基拉

评论:dragon3476dragon3476:我最喜欢的动画之一 出色的工作,关于我的第 300 块手表,我仍然得到 原始海报从它出来时 + dvd 和 vid 甚至是 T恤所以是的,我不能说这么棒的东西 动画 5/5

但是,我是这样理解的:

title: Ben 10 Ultimate Alien

title: taseen_shafquattaseen_shafquat : 有没有第四季 这个系列

标题:阿基拉

title: dragon3476dragon3476 : 我最喜欢的动画之一 有点工作,关于我的第 300 块手表,我仍然有原始海报 从它问世的时候起 + dvd 和 vid 甚至是 T 恤,所以是的,我 不能说这么棒的动画有什么不好 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。我认为问题在于span 中的href 标签。它包含评论者用户名。我为标题调用了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>

【问题讨论】:

    标签: java web-scraping jsoup


    【解决方案1】:

    试试这个

    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());
    
     }
    }
    

    【讨论】:

      猜你喜欢
      • 2013-01-02
      • 1970-01-01
      • 1970-01-01
      • 2019-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-25
      • 1970-01-01
      相关资源
      最近更新 更多