0

我正在使用 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 等的文本。然后我想将所有这些信息写入文件。我怎样才能做到这一点?谢谢!

4

2 回答 2

2

使用text()方法

System.out.println(reviews.text());
于 2012-04-11T13:00:21.780 回答
1

虽然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;
}

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

于 2012-04-11T13:28:29.807 回答