【问题标题】:Jsoup multiple classesJsoup 多个类
【发布时间】:2016-05-24 15:13:19
【问题描述】:

我对 Jsoup 有一些可能很简单的问题

我要解析的页面:

    <div id="d4861771" class="q post"> 
 <div class="bar"> 
  <div class="right">
    27 kwietnia 2016 08:02 
  </div> 
  <a class="qid click" href="/4861771/">#4861771</a> 
  <a class="click votes rox" rel="nofollow" href="/rox/4861771/">+</a> 
  <span class=" points">614</span> 
  <a class="click votes sux" rel="nofollow" href="/sux/4861771/">-</a> 
  <span class="msg">&nbsp;</span> 
 </div> 
 <div class="quote post-content post-body">
   &lt;gadus&gt; te nowe windowsy są do dupy 
  <br> &lt;gadus&gt; pasjans ma licznik gier 
  <br> &lt;gadus&gt; to tak jakby wbudowane przypominanie o tym jak bardzo marnujesz czas 
 </div> 
</div>

现在我需要日期、点和变量中的内容,但我不知道如何将它们放入不同的变量中。

我的想法是从 .text() 然后我有:

27 kwietnia 2016 08:02 #4861771 + 614 -   <gadus> te nowe windowsy są do dupy <gadus> pasjans ma licznik gier <gadus> to tak jakby wbudowane przypominanie o tym jak bardzo marnujesz czas

只是正则表达式,但我认为有更好的主意。

我的输出应该是这样的:

Data: 27 kwietnia 2016 08:02
Points: 614
Content: <gadus> te nowe windowsy są do dupy<...>

我明白了!

Elements idd = doc.select("div.q");

for(Element abc : idd){
    System.out.println(abc.getElementsByClass("points").text());
    System.out.println(abc.getElementsByClass("quote").text());
    System.out.println(abc.getElementsByClass("right").text());
}

现在我必须删除这篇文章还是什么?

【问题讨论】:

  • 是否删除问题由您自己选择。但请不要将解决方案添加到问题本身。如果您想发布一个可行的解决方案,请将其作为答案发布。

标签: java html-parsing jsoup


【解决方案1】:

你可以这样做:

Document doc = Jsoup......
String data = doc.select(".right").first().text();
String points = doc.select(".points").first().text();
String content = doc.select(".post-content").first().text();

您可能需要添加一些检查以确保 select 调用找到一些元素,否则,text() 将抛出 NullPointerException

【讨论】:

  • 谢谢!我发现了类似的想法(编辑了第一篇文章)。
猜你喜欢
  • 2011-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-08
  • 2018-06-03
相关资源
最近更新 更多