jsoup基础

 最近在研究如何解析Html文件,了解到jsoup是一个基于Java的开源HTML解析器,其官网地址以下:css

http://jsoup.org/html

jsoup最大的特色,或者说,它比使用DOM4J进行HTML解析更好的缘由,是它能够采用jQuery选择器的语法,例如:正则表达式

1.Document doc=Jsoup.connect("http://en.wikipedia.org/").get();数组

2.Elements  newsHeadlines=doc.select("#mp-itn  b  a");spa

上述代码就是获取了http://en.wikipedia.org/页面中id为mp-itn的元素下的<b>标签中的<a>标签,与jQuery选择器的结果一致。orm

为了精确的解析到html页面中的某一个标签,我特意查了一些关于jQuery选择器的资料htm

jQuery的选择器可谓强大无比,这里简单地介绍一下经常使用的元素查找方法:对象

$("#myElement")选择id值等于myElement的元素,id值不能重复在文档中只能有一个id值是myElement,因此获得的是惟一的元素。ip

$("div")选择全部的div标签元素,返回div元素数组element

$(".myClass")选择使用myClass类的css的全部元素

$("*") 选择文档中全部的元素,能够运用多种的选择方式进行联合选择

 

基本过滤选择器

$("tr:first")  选择全部tr元素的第一个

$("tr:last")   选择全部tr元素的最后一个

$("A B")查找A元素下面的全部子节点,包括非直接子节点

$("form input")  选择全部的form元素中的input元素

 

select详解

描述:HTML代码的select写法

经过标签名来查找

Elements elements=doc.select("span");

注:经过标签来查找,直接写"标签名"就好,不须要尖括号

经过id来查找

Elements elements=doc.select("#mySpan");

注:经过id来查找,使用方法跟css指定元素同样,用#

经过class名来查找

Elements elements=doc.select(".myClass");

注:经过id来查找,使用方法跟css指定元素同样,用.

利用标签内属性名查找元素

Elements elements=doc.select("span[class=class1]span[id=id1]");

注:规则为标签名[属性名=属性值] ,标签名可写可不写,多个属性即多个[],如上。

利用标签内属性名前缀查找元素

Elements elements=doc.select("span["c1]");

注:规则为 标签名["属性名前缀],标签名可写可不写,多个属性即多个[]。

利用标签内属性名+正则表达式查找元素

Elements elements=doc.select("span[class=AB]");

注:规则为  标签名[属性名=正则表达式],以上正则表达式的意思是查找以class值以AB为开头的标签,标签可写可不写,多个属性即多个[]

利用标签文本包含某些内容来查找

Elements elements=doc.select("span:contains(3)");

注:规则为 标签名:contains(文本值)

利用标签文本包含某些内容+正则表达式来查找

Elements elements=doc.select("span:matchesOwn(3)");

注:规则为  标签名:matchesOwn(正则表达式),以上的正则表达式的意思是

以文本值以3为开头的标签

select方法返回的是一个Elements对象,里面包含着找到的全部节点,遍历Elements,经过get(index),就能够拿出具体的节点了。经过节点的text()方法,就可拿出文本值。

相关文章
相关标签/搜索