在JSoup中逐个元素地获取

时间:2012-02-17 20:37:58

标签: java jsoup

我尝试将所有信息都包含在名为bg_block_info的div类中,但我得到另一个div类的信息<div class="bg_block_info pad_20">为什么我错了?

Document doc = Jsoup.connect("http://www.maib.md").get(); 
Elements myin = doc.getElementsByClass("bg_block_info");

5 个答案:

答案 0 :(得分:22)

您可以组合链式选择器以优化查询,例如:

Document doc = Jsoup.connect("http://www.maib.md/").get();
Elements els = doc.getElementsByClass("bg_block_info").not(".pad_10").not(".pad_20");

答案 1 :(得分:11)

该元素有两个类(注意bg_block_infopad_20之间的空格):

<div class="bg_block_info pad_20">

所以它 有类bg_block_info,你的代码按预期工作。

答案 2 :(得分:2)

Elements downloadLinks = dContent.select("a[href]");
Elements pdfLinks = downloadLinks.select("a[data-format$=pdf]");

完整参考jsoup selector syntax

答案 3 :(得分:0)

在您的情况下,您可能会使用Element content = doc.getElementById("pollsstart");代替Elements myin = doc.getElementsByClass("bg_block_info");

答案 4 :(得分:0)

只需在 bg_block_info""pad_20" 之间使用逗号。应该是这样的。

Elements myin = doc.getElementsByClass("div.bg_block_info.pad_20");