JSoup 解析html

    JSOUP,JAVA语言界的Jquery解析神器。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。你可以用它:

  •  你可以从一个URL,文件或字符串中解析HTML;
  • 可以使用DOM或CSS选择器来查找、取出数据;
  • 可以可操作HTML元素、属性、文本;

同时jsoup基于MIT协议发布的,可放心使用于商业项目。

简单使用:

1.将html转换为document对象

      例子: Doucument doucment=Jsoup.parse(html);       

2.选择器的使用

     例子:document.select(".comProfile p").html();//获取class为comProfile 下的p元素中的内容。

3.选择器的介绍

    选定元素后,就可以对元素做相应操作。那么选择元素,重要的就是jsoup的选择器了:

        基础选择器:

            Tagname:通过标签查找元素(例如:a)

            ns|tag:通过标签在命名空间查找元素,例如:fb|name查找<fb:name>元素

            #id:通过ID查找元素,例如#logo   

            .class:通过类型名称查找元素,例如.masthead    

            [attribute]:带有属性的元素,例如[href]

            [^attr]:带有名称前缀的元素,例如[^data-]查找HTML5带有数据集(dataset)属性的元素

            [attr=value]:带有属性值的元素,例如[width=500]    

            [attr^=value],[attr$=value],[attr*=value]:包含属性且其值以value开头、结尾或包含value的元素,例如[href*=/path/]    

            [attr~=regex]:属性值满足正则表达式的元素,例如img[src~=(?i)\.(png|jpe?g)]

            *:所有元素,例如*

         组合选择器

                el#id:带有ID的元素,例如div#logo

                el.class:带某类的元素,例如. div.masthead

                el[attr]:包含某属性的元素,例如a[href]

                任意组合:例如a[href].highlight

                ancestor child:继承自某祖(父)元素的子元素,例如.body p查找“body”块下的p元素    

                parent > child:直接为父元素后代的子元素,例如: div.content > p 查找类名为content的div的子元素p

                                        ,body > * 查找body元素的直系子元素

                siblingA + siblingB:查找由同级元素A前导的同级元素,例如div.head + div

                siblingA ~ siblingX:查找同级元素A前导的同级元素X例如h1 ~ p

                el, el, el:多个选择器组合,查找匹配任一选择器的唯一元素,例如div.masthead, div.logo

        伪选择器:

                :lt(n):查找索引值(即DOM树中相对于其父元素的位置)小于n的同级元素,例如td:lt(3)

                :gt(n):查找查找索引值大于n的同级元素,例如div p:gt(2)

                :eq(n) :查找索引值等于n的同级元素,例如form input:eq(1)

                :has(seletor):查找匹配选择器包含元素的元素,例如div:has(p)

                :not(selector):查找不匹配选择器的元素,例如div:not(.logo)

                :contains(text):查找包含给定文本的元素,大小写敏感,例如p:contains(jsoup)

                :containsOwn(text):查找直接包含给定文本的元素

                :matches(regex):查找其文本匹配指定的正则表达式的元素,例如div:matches((?i)login)

                :matchesOwn(regex):查找其自身文本匹配指定的正则表达式的元素

        注意:上述伪选择器是索引基数从0开始


猜你喜欢

转载自blog.csdn.net/jackyemail/article/details/79569704