(1)从字符串解析
123 | String "<html><head><title>First parse</title></head>" + "<body><p>Parse HTML into a doc.</p></body></html>" ; Document |
12 | Document "http://example.com/" ).get(); String |
123456 | Document "http://example.com" ) .data( "query" , "Java" ) .userAgent( "Mozilla" ) .cookie( "auth" , "token" ) .timeout( 3000 ) .post(); |
12 | File new
"/tmp/input.html" ); Document "UTF-8" , "http://example.com/" ); |
(1)搜索元素
123456 | getElementById(String getElementByTag(String getElementByClass(String getElementByAttribute(String siblingElements(), parent(), int
|
12345678 | attr(String attributes() id(), text() html() outerHtml() data() tag(), |
(1)基本选择器
12345678910 | tagname: ns|tag: #id: . class : 搜索有指定 class 的元素 [attribute]: [^attri]: [attr=value]: [attr^=value], [attr~=regex]: *: |
123456789 | el#id: el. class : 同时指定标签名称和 class el[attr]: 上述 3 项的任意组合,如a[href].highlight ancestor class =”content”>下含有<p>标签的元素 ancestor class = "content" >节点下的<p>标签元素;div.content > *,即搜索<div class = "content" >下的所有元素 siblingA class = "head" ><div>的元素,其中不再包含子元素 siblingA el, |
12345678910 | :lt(n): :gt(n): :eq(n): :has(seletor): :not(seletor): :contains(text): :containsOwn(text): :matches(regex): :matchesOwn(regex): 注意:以上伪选择器的索引中,第一个元素位于索引 0 ,第二个元素位于索引 1 ,…… |
123 | 获取元素的属性值:Node.attr(String 获取元素的文本,包括与其组合的子元素:Element.text() 获取HTML:Element.html()或Node.outerHtml() |
5.操作URL
12 | Element.attr( "href" ) – 直接获取URL Element.attr( "abs:href" )或Element.absUrl( "href" ) – 获取完整URL。如果HTML是从文件或字符串解析过来的,需要调用Jsoup.setBaseUri(String baseUri)来指定基URL,否则获取的完整URL只会是空字符串 |
6.测试例子
12 | li[ class =info] a[ class =Author] - 空格前后表示包含关系,即表示li里的a div[ class =mod mod-main mod-lmain]:contains(教学反思) - div中包含 "教学反思" ,适合同时有多个同名DIV的情况 |
123456789101112131415 | /* previousSibling()获取某标签前面的代码 nextSibling()获取某标签后的代码 如: <form id=form1> 第一名:Lily <br/> 第二名:Tom <br/> 第三名:Peter <br/> </form> */ Elements "form[id=form1]" ); Elements "br" ); for (Element p : prevs){ String prevStr = p.previousSibling().toString().trim()); } |
12345678910111213 | /* 最常用的链接抓取 */ String "div[class=mydiv]" ; String "a" Elements Elements for (Element l : links){ String href = l.attr( "abs:href" ); //完整Href String absHref = l.attr( "href" ); //相对路径 String text = l.text(); String title = l.attr( "title" ); } |