【问题标题】:Java HTML parsing (storing as String)Java HTML解析(存储为字符串)
【发布时间】:2016-02-02 19:36:19
【问题描述】:

我正在解析一个网页,但我遇到了一些问题,该页面包含很多这样的元素:

<div class="tweet">
        <a href="https://twitter.com/Sweden" target="_blank" class="tweet__link">@sweden</a>
        <span class="tweet__timestamp"><a href="https://twitter.com/sweden/status/694285861026926594" target="_blank" class="tweet__permalink">Feb. 1, 2016, 11:27 p.m.</a></span>
        <p class="tweet__content"><a href='http://twitter.com/UnbatedFlunky' target='_blank'>@UnbatedFlunky</a> Good to know. :)</p>
    </div>

    <div class="tweet">
        <a href="https://twitter.com/Sweden" target="_blank" class="tweet__link">@sweden</a>
        <span class="tweet__timestamp"><a href="https://twitter.com/sweden/status/694285696140513280" target="_blank" class="tweet__permalink">Feb. 1, 2016, 11:26 p.m.</a></span>
        <p class="tweet__content">RT <a href='http://twitter.com/UnbatedFlunky' target='_blank'>@UnbatedFlunky</a>: .<a href='http://twitter.com/sweden' target='_blank'>@sweden</a> exactly the kind of content I'd want representing my country. 10/10</p>
    </div>

我想将每个推文类中的内容放在单独的字符串中,到目前为止我有这段代码:

Document doc = Jsoup.connect("http://curatorsofsweden.com/curator/aleksandra-boscanin/").get();
        Element e = doc.select("div").first();
            String text = doc.getElementsByClass("tweet").text();

但是以这种方式我将所有内容存储在一个字符串中,但我的问题是如何将它们分开放置,例如让我们说字符串数组:/也许这是一个愚蠢的问题,但我无法让它工作:/

【问题讨论】:

  • 您是否考虑过先创建一个模型,然后尝试序列化它?
  • 模型是什么意思:/
  • 这是一个反映 HTML (DOM) 结构的实体(在 OOP 中)。您应该阅读序列化和反序列化。 Apache Xerces 将是一个易于实现的框架,用于将 HTML 反序列化为类:xerces.apache.org/xerces2-j/faq-dom.html#faq-3

标签: java html parsing jsoup


【解决方案1】:

doc.getElementsByClass("tweet") 返回一个数组,您应该在该数组上迭代并为每个tweet 元素创建一个数组条目。例如

List<String> stringList = new ArrayList<>();
List<Element> tweets = doc.getElementsByClass("tweet");
for(Element tweet : tweets){
    stringList.add(tweet.text()); 
}

文本将在stringList 列表中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 2010-12-02
    • 2015-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多