通读cheerio API
来源:互联网 发布:xampp启动apache失败 编辑:程序博客网 时间:2024/05/18 00:26
https://cnodejs.org/topic/5203a71844e76d216a727d2e
所谓工欲善其事,必先利其器,所以通读了cheerio的API,顺便翻译了一遍,有些地方因为知道的比较少,不知道什么意思,保留了英文,希望各位不吝告诉我,然后一起把这个翻译完成。
###cheerio为服务器特别定制的,快速、灵活、实施的jQuery核心实现.###Introduction将HTML告诉你的服务器
var cheerio = require('cheerio'), $ = cheerio.load('<h2 class="title">Hello world</h2>');$('h2.title').text('Hello there!');$('h2').addClass('welcome');$.html();//=> <h2 class="title welcome">Hello there!</h2>
###Installationnpm install cheerio
###Features**❤ 相似的语法:**Cheerio 包括了 jQuery 核心的子集。Cheerio 从jQuery库中去除了所有 DOM不一致性和浏览器尴尬的部分,揭示了它真正优雅的API。
**ϟ 闪电般的块:**Cheerio 工作在一个非常简单,一致的DOM模型之上。解析,操作,呈送都变得难以置信的高效。基础的端到端的基准测试显示Cheerio 大约比JSDOM快八倍(8x)。
❁ 巨灵活: Cheerio 封装了兼容的htmlparser。Cheerio 几乎能够解析任何的 HTML 和 XML document。
###What about JSDOM我写cheerio 是因为我发现我自己对JSDOM越来越沮丧。对于我来说,总是会一次又一次的碰上几个难点。
JSDOM内建的解析太过于严格: JSDOM附带的HTML解析不能处理很多当下的大众的网站。
JSDOM太慢:用JSDOM解析大型网站存在可见的延迟。
JSDOM太累赘:JSDOM的目标是提供一个我们在浏览器里面看到的相同的 DOM 环境。我从没有真的需要所有这些东西,我只是想要一个简单的,想死的方法去处理HTML。
###When I would use JSDOMCheerio 不会解决你的所有问题。我人会使用JSDOM如果我需要用一个在服务器上的浏览器环境,特别是如果我想要自动化一些功能测试。###API####我们将用到的标记示例
- Apple
- Orange
- Pear
这是我们将会在所有的API例子中用到的HTML标记
####Loading首先你需要加载HTML。这一步对jQuery来说是必须的,since jQuery operates on the one, baked-in DOM。通过Cheerio,我们需要把HTML document 传进去。
这是首选:
var cheerio = require('cheerio'), $ = cheerio.load('<ul id="fruits">...</ul>');
或者通过传递字符串作为内容来加载HTML:
$ = require('cheerio');$('ul', '<ul id="fruits">...</ul>');
Or as the root:
$ = require('cheerio');$('li', 'ul', '<ul id="fruits">...</ul>');
你也可以传递一个额外的对象给.load()如果你需要更改任何的默认解析选项的话:
$ = cheerio.load('<ul id="fruits">...</ul>', { ignoreWhitespace: true, xmlMode: true});
这些解析选项都是直接来自htmlparser ,因此任何在htmlparser里有效的选项在Chreeio里也是行得通的。默认的选项如下:
{ ignoreWhitespace: false, xmlMode: false, lowerCaseTags: false}
想看选项清单和它们都效果,看这个和这个
####Selectors
Cheerio的选择器用起来几乎和jQuery一样,所以API也很相似。
$(selectior,[context],[root])
选择器在 Context 范围内搜索,Context又在Root范围内搜索。selector 和context可是是一个字符串表达式,DOM元素,和DOM元素的数组,或者chreeio对象。root 是通常是HTML 文档字符串。
$('.apple', '#fruits').text()//=> Apple$('ul .pear').attr('class')//=> pear$('li[class=orange]').html()//=> <li class="orange">Orange</li>
- 通读cheerio API
- 通读cheerio API
- 通读cheerio API
- 通读cheerio API
- 通读cheerio API
- nodejs 之 通读cheerio API
- cheerio中文API-01
- cheerio中文API-02
- Node.Js cheerio模块简单API
- nodejs之cheerio中文API 说明
- nodejs(8.9) API通读(1)—Modules
- 通读SDWebImage
- 线程一章通读
- 通读c++ primer
- CodeIgniter代码通读
- STC12手册通读
- cheerio - 服务端的 jQuery
- nodejs+cheerio 爬虫入门
- Java:比较运算符compareTo()、equals()、==之间的区别与应用总结(转自-且听风吟-博客)
- Express框架
- node.js相关
- async.js 学习教程(一)
- async.js 学习教程(二)
- 通读cheerio API
- 用Highcharts轻松构建交互性图表
- Day1
- errno: 34, code: 'ENOENT' in fs
- Oracle11g密码区分大小写导致database link无法连接
- 使用 superagent 与 cheerio 完成简单爬虫
- 关于oracle表名区分大小写的问题
- Oracle数据库Where条件执行顺序 及Where子句的条件顺序对性能的影响
- 让Oracle 大小写敏感 表名 字段名 对像名