【问题标题】:Retrieving Reviews from Amazon using JSoup使用 JSoup 从亚马逊检索评论
【发布时间】:2012-04-11 21:39:24
【问题描述】:

我正在使用 JSoup 从亚马逊的特定网页中检索评论,而我现在拥有的是:

    Document doc = Jsoup.connect("http://www.amazon.com/Presto-06006-Kitchen-Electric-Multi-Cooker/product-reviews/B002JM202I/ref=sr_1_2_cm_cr_acr_txt?ie=UTF8&showViewpoints=1").get();
    String title = doc.title();

    Element reviews = doc.getElementById("productReviews");
    System.out.println(reviews);

这给了我包含评论的 html 块,但我只想要没有所有标签 div 等的文本。然后我想将所有这些信息写入文件。我怎样才能做到这一点?谢谢!

【问题讨论】:

  • Jsoup 有很多用于提取信息的工具,而且您肯定已经阅读过这些教程(它们并不大)。那么,在这点上,您尝试过什么,您在哪里卡住了?

标签: java html jsoup


【解决方案1】:

使用text()方法

System.out.println(reviews.text());

【讨论】:

    【解决方案2】:

    虽然text() 会为您提供一堆文本,但您需要先使用jsoup 的select(...) 方法将问题细分为单独的评论元素。我会给你第一个大的划分,但你可以进一步细分它:

    public static List<Element> getReviewList(Element reviews) {
      List<Element> revList = new ArrayList<Element>();
      Elements eles = reviews.select("div[style=margin-left:0.5em;]");
      for (Element element : eles) {
         revList.add(element);
      }
      return revList;
    }
    

    如果您分析每个元素,您应该会看到亚马逊如何进一步细分所持有的信息,包括评论的标题、评论的日期和所持有的文本正文。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-27
      • 2017-07-28
      • 1970-01-01
      • 2013-07-22
      • 1970-01-01
      • 1970-01-01
      • 2020-07-07
      相关资源
      最近更新 更多