cheerio 是nodejs特別為服務(wù)端定制的,能夠快速靈活的對JQuery核心進行實現(xiàn),工作于DOM模型上荤堪,并且解析囚戚、操作、呈送都很高效
//示例
var html = '<ul id="fruits">' +
' <li class="apple">Apple</li>' +
' <li class="orange">Orange</li>' +
' <li class="pear">Pear</li>' +
'</ul>';
-
.load
引入我們要解析的html
var cheerio = require('cheerio');
$ = cheerio.load(html);
-
選擇器(selectors)
$(selector,[context],[root])
(context褒侧、root通常會省略)
$('.apple')
//選擇器定位到class=“apple”
$('ul .pear')
//選擇器定位到ul中class = “pear”
$('li[class = orange]')
//選擇器定位到liclass=“orange”
- 屬性操作(attr)
.attr(name[,value])
獲取和設(shè)置屬性
第二個參數(shù)是可選的。當?shù)诙€參數(shù)不存在時表示獲取屬性的值谊迄,當有帶有第二個參數(shù)時闷供,表示設(shè)置屬性的值。如果設(shè)置一個屬性的值設(shè)置為null 统诺,則刪除該屬性
$('ul').attr('id');
//獲取ul的id屬性名
$('apple').attr('id','favorite').html;
//class為apple的添加了個id為favorite
.removeAttr(name)
移除屬性
- class操作
.hasClass(className)
判斷元素class中是否包含className
.addClass(className)
給元素添加className的樣式名
removeClass(className)
將元素上className的樣式名移除歪脏,當className為空時則移除所有樣式名 - DOM操作
.append(content)
作為最后一個子元素插入
prepend(content)
作為第一個子元素插入
.after(content)
插入某一元素后面
.before(content)
插入某一元素前面
.empty()
清空節(jié)點,移除所有字節(jié)點
.html()
獲取節(jié)點的html內(nèi)容粮呢,傳入?yún)?shù)時設(shè)置該元素的html結(jié)構(gòu)
.text()
獲取節(jié)點的所有文本內(nèi)容
查找元素
.find()
查找符合選擇條件的元素
$('#fruits').find('li').length; //=> 3
.parent()
獲取元素的父元素
.next()
獲取元素的下一個兄弟元素
.perv()
獲取元素的上一個兄弟元素
.children([selector])
獲取元素的孩子節(jié)點
.siblings()
獲取元素的所有同級元素(包括本身)
?
.filter(seletor/function(index))
在cheerio對象集合中進行條件篩選
.fist()
獲取cheerio集合中第一個cheerio對象
.last()
cheerio最后一個對象
.eq(i)
根據(jù)索引值i獲取cheerio的對象(i為負值時表示從尾部開始索引)
.clone()
對cheerio對象進行復(fù)制
.eacn(function(index,element){……})
遍歷每個元素
.map(function(index,element){……})
對每一個元素進行處理并返回一個值
$.root
對頂級DOM進行操作
$.contains(container,contained)
判斷container是否有contained