无论如何要控制我想要的数据量?

时间:2014-03-22 23:00:47

标签: jsoup

我不想要获取"分享"和"推特"我在这个页面上抓取列表项时的关键字无论如何我都可以修复,直到我的抓取应该为我带来哪些标记数据

<div id="main-content" tabindex="-1" role="main"> <ul> <li>Comedones .</li></ul><ul> <li>Papules </li> <li>Pustules (pimples)</li> <li>Nodules</li> <li>Cysts</li></ul> <h3>When to see a doctor</h3><p>Acne diminished. </p>
<div class="auto-mobile"></div> <menu class="social"> <ul><li><a href="http://www.facebook.com/sharer" class="facebook" >Share</a> </li> <li><a href="http://twitter.com/home?status="class="twitter" >Tweet</a></li> </ul></menu>

我写的代码来获取li标签

Document doc2;
      doc2=Jsoup.connect("http://www.mayoclinic.org/diseases-conditions/acne/basics/symptoms/con-20020580").get();

      Elements ddd1=doc2.select("div#main-content ul li");


     for(Element a2: ddd1)
     {
        System.out.println( a2.text());

     }

1 个答案:

答案 0 :(得分:0)

似乎&#34;分享&#34;和&#34;鸣叫&#34; <li>条目嵌入<menu></menu>构造中。如果您想要的所有其他<ul><li></li></ul>条目都直接位于主div#main-content下,那么您可以将css选择器更改为:

Elements ddd1=doc2.select("div#main-content>ul li");

说明:div#main-content>ul包含>,表示ul条目必须是div#main-content的直接子项。

但是,如果结构中还有其他<li>个条目,则可以在应用原始选择器后过滤掉链接:

for(Element a2: ddd1)
{
    if (a2.text().equals("Share") || a2.text().equals("Tweet")) continue;

    //now do your stuff
    System.out.println( a2.text());

}