cheerio 是nodejs特别为服务端定制的,能够快速灵活的对JQuery核心进行实现,工作于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])获取和设置属性
第二个参数是可选的。当第二个参数不存在时表示获取属性的值,当有带有第二个参数时,表示设置属性的值。如果设置一个属性的值设置为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()清空节点,移除所有字节点
    .html()获取节点的html内容,传入参数时设置该元素的html结构
    .text()获取节点的所有文本内容

查找元素
.find()查找符合选择条件的元素

$('#fruits').find('li').length;  //=> 3

.parent()获取元素的父元素
.next()获取元素的下一个兄弟元素
.perv()获取元素的上一个兄弟元素
.children([selector])获取元素的孩子节点
.siblings()获取元素的所有同级元素(包括本身)

.filter(seletor/function(index))在cheerio对象集合中进行条件筛选
.fist()获取cheerio集合中第一个cheerio对象
.last()cheerio最后一个对象
.eq(i)根据索引值i获取cheerio的对象(i为负值时表示从尾部开始索引)
.clone()对cheerio对象进行复制

.eacn(function(index,element){……})遍历每个元素
.map(function(index,element){……})对每一个元素进行处理并返回一个值

$.root 对顶级DOM进行操作
$.contains(container,contained)判断container是否有contained

交流

共同进阶学习

    

学习之余,大家一起来薅羊毛喽,各取所需。

node - cheerio模块相关推荐

  1. node.js之妙用cheerio模块多方案爬取网上资源

    加油,每天总结一点点进步生活每一天! cheerio模块 http模块配合cheerio爬数据 cheerio模块的作用是分析数据的内容/具体信息 用 fs.writeFile()方法下载数据 下载一 ...

  2. nodejs爬虫 node + cheerio 爬取滚动加载页面

    最近在学习nodejs,然后了解到nodejs也可以做爬虫就试了一试还可以就记录一下 爬取爱奇艺首页视频标题 用到的是node+cheerio,cheerio是jq核心功能的一个快速灵活而又简洁的实现 ...

  3. node web模块 (服务器端和客户端)

    node web模块 web服务器 web服务器指网站服务器,指驻留在因特网上的某种程序,web浏览器的基本功能,提供信息浏览服务 web支持服务器端的脚本语言,通过脚本语言从数据库获取数据,将结果返 ...

  4. eslint检测node 内部模块报错解决方案

    如上图所示,eslint检测node 内部模块报错解决, 解决方案: 代码: module.exports = {"env": {"browser": true ...

  5. 编写原生的Node.js模块

    通常,我们开发原生Node.js模块包括但不仅限于以下原因: 对性能有比较苛刻要求的应用.尽管Node.js得益于libuv,在异步I/O操作很有优势,但遇到数字计算时并不是一个很好的选择. 使用更加 ...

  6. node 大写_大写Node.js模块

    node 大写 Today, let's see a third party module that helps us in working with upper-case letters witho ...

  7. node中模块系统及核心模块、执行node文件

    node中模块系统: 1.模块系统:核心模块.第三方模块. 自己写的模块. 2.网页中所有的路径都是URL,而不是文件路径. 3.node偏底层开发,开启的服务器完全是一个黑盒子,所有的资源默认都是不 ...

  8. Node.js 模块之Nimble流程控制

    NodeJS异步的特性有时候会导致程序非常的难看,回调一层套着一层,这个时候就要用流程控制模块来控制究竟是同步还是异步了. Nimble是一个轻量.可移植的函数式流程控制模块.经过最小化和压缩后只有8 ...

  9. Node.js「一」—— Node.js 简介 / Node.js 模块 / 包 与 NPM

    本文为 Node.js 系列笔记第一篇.文章参考:nodejs 教程 -- 大地:<深入浅出 Node.js>:阮一峰 nodejs 博客 文章目录 一.Node 简介 1. 简单介绍 2 ...

最新文章

  1. Python爬虫入门教程 21-100 网易云课堂课程数据抓取
  2. unittest简单使用的介绍
  3. 理解ResNet结构与TensorFlow代码分析
  4. linux下的struct sigaction
  5. jdbc工具类2..0
  6. python中代理模式分为几种_Python设计模式之代理模式实例详解
  7. Android官方开发文档Training系列课程中文版:OpenGL绘图之响应触摸事件
  8. c语言中怎么暂停一个一个游戏,求助:最近在linux下用c语言写了一个贪吃蛇程序,有几个问题,第一:贪吃蛇怎么实现暂停,第二:有时候同时输入上下左右中的两个键就会直接游戏结束...
  9. MapReduce多用户任务调度器——容量调度器(Capacity Scheduler)原理和源码研究
  10. 算法竞赛入门经典第六章(例题) B - Rails(涉及到栈的运用)
  11. 雷军:我爱编程这个工作,可以肯定我会干上一辈子
  12. 1030: [JSOI2007]文本生成器 ac自动机+dp
  13. linux 环境下安装 docker 精简步骤
  14. dns服务期搭建使用_DNS服务器搭建
  15. 睡眠分期matlab代码,非接触式睡眠分期方法与流程
  16. HttpClient RestTemplate
  17. 查SCI索引号和EI索引号的方法
  18. 如何设置显示网络计算机,如何在台式计算机上设置无线局域网络
  19. python画国际象棋棋盘图片_python3 turtle 画国际象棋棋盘
  20. Java MyShopping管理系统 > 购物结算+管理系统

热门文章

  1. LABVIEW手把手教学之一——隧道和移位寄存器
  2. 考研计算机统考408计算机学科专业基础综合真题视频课程哪里有
  3. idea 文件名颜色所代表的含义
  4. 迅雷白金会员和超级会员区别是什么
  5. 灰色系统理论及其应用 (八) :GM(2,1)和 DGM 模型
  6. 自动控制原理中matlab的应用
  7. 乐视网的视频看不了了,说抱歉,你所访问的视频不存在
  8. 微信小程序通过Webview打开外部网站
  9. 服务器关机选择项目,服务器设置关机任务计划
  10. RRC idle 和RRC connect