首页 > 代码库 > cheerio笔记

cheerio笔记

不会的东西,再简单都是难;会的东西,再难都是简单。

给自己写的,写的通俗易懂。

cheerio:在node服务端,解析网页,是jquery的核心,去除了DOM中不一致的地方。

先获得网页的源码,再通过cheerio解析,可以迅速提出想要的字段。获得源码有点麻烦。

Load:

//使用的html字段
<ul id="fruits">
<li class="apple">Apple</li>
<li class="orange">Orange</li>
<li class="pear">Pear</li>
</ul>
//加载需要处理的字段,标准写法。
var cheerio = require(‘cheerio‘),$ = cheerio.load(‘<ul id="fruits">...</ul>‘, {
  ignoreWhitespace: false, //不 忽略空格
  xmlMode: false, //不使用xml模式
  lowerCaseTags: false //不区分大小写
});

Selectors:

$(selectior,[context],[root]):选择器在 Context 范围内搜索,Context又在Root范围内搜索。

属性:

.attr(name,value):在匹配的元素中只能获得第一元素的属性。如果设置一个属性的值为null,则移除这个属性。

值:

.val([value]):获得和修改input,select,textarea的value

移除属性:

.removeAttr(name)

.hasClass( className ):检查匹配的元素是否有给出的类名

.addClass(className):给元素加类

.removeClass([className])

.is(selector):任何元素匹配selector就返回true

.is(function(index)):使用判定函数,判定函数在选中的元素中执行,所以this指向当前的元素。

.find(selector):查找

.parent([selector])

.parents([selector]):父,祖父及以上元素

.closest([selector]):匹配这个元素和DOM层级关系上的祖先元素。

.next()

.nextAll()

.prev()

.preAll()

.slice(start,[end]):获得选定范围内的元素

.siblings(selector):获得被选择的同级元素,除去自己

.children(selector)

.each(function(index,element))

.map(function(index,element)):跟each好像呀?

.filter(selector):迭代一个cheerio对象,得出匹配选择器或者是传进去的函数的元素。

.filter(function(index)):如果使用函数方法,这个函数在被选择的元素中执行,所以this指向当前元素

.first()

.last()

.eq(i):i为负数,从最后一个元素向前数

改变DOM的结构:

.append(content,[content…]):在每个元素的子元素最后插入一个子元素

.prepend(content,[content,…]):在每个元素的子元素最前插入一个子元素

.after(content,[content,…]):在每个匹配元素之后插入一个元素

.before(content,[content,…]):

.remove( [selector] ):从DOM中去除匹配的元素和它们的子元素

.replaceWith( content ):

.empty():移除子元素

.html( [htmlString] ):如果htmlString有内容的话,将会替代原来的HTML

.text( [textString] ):获得元素的text内容,包括子元素。如果textString被指定的话,每个元素的text内容都会被替换。

输出:

$.html([selector]):

.toArray():取得所有的在DOM元素,转化为数组

.clone():克隆cheerio对象

$.root

$.contains( container, contained ):查看cotained元素是否是container元素的子元

$.parseHTML( data [, context ] [, keepScripts ] ):context参数对chreeio没有意义,但是用来维护APi的兼容性 

cheerio笔记