Jsoup-从网站获得某些属性

时间:2013-08-13 14:55:09

标签: java jsoup

最近我开始使用Jsoup并且发现了这个示例代码。因为我是新手,我无法弄清楚这是如何找到网站上的所有链接的。有人能解释一下for循环中会发生什么吗?大多数情况下,我之前从未使用过for循环的这种语法,所以对我来说有点混乱。我当然不明白循环包含什么。谢谢!

    Elements links = doc.select("a[href]");
    for (Element link : links) {

        // get the value from href attribute
        System.out.println("\nlink : " + link.attr("href"));
        System.out.println("text : " + link.text());

    }

2 个答案:

答案 0 :(得分:2)

这是因为Elements实现了Iterable<Element>

org.jsoup.select.Elementsjava.lang.Iterable

因此,当您使用for语法时,您会遍历Elements个链接,这实际上是List类型的Element。 “元素链接”是在迭代时分配给“链接”中每个元素的局部变量。

有关详细信息,请参阅:

http://jsoup.org/apidocs/org/jsoup/select/Elements.htmlhttp://jsoup.org/apidocs/index.html

答案 1 :(得分:2)

正如名称所示,课程ElementsElement是相似的。一个由已选择的单个元素组成,另一个元素是组合在一起的多个元素的集合。

Elements linksElement - 已被选中的对象组成。

Elements类在java中实现以下接口:

Cloneable, Iterable< Element>, Collection< Element>, List< Element>.

Elements类是使用ArrayList<Element>实现的,因此很容易在Element集合中添加和删除Elements个对象。

对于for - 循环,这是一种迭代Element集合中名为链接的每个Elements对象的简单方法。

循环将遍历集合,并将变量link分配给名为Element的集合中的当前links对象。在for - 循环内部,将打印当前link的内容,循环将从集合中的下一个Element对象开始。


此循环的语法通常称为for-each循环,因为它迭代列表或集合中的每个对象。

阅读here


查看Jsoup API文档,详细了解如何使用它!


如果您想了解有关如何实施Jsoup的更多信息,请查看source code