Node.Js cheerio模块--操作/解析Html
2016-08-31 12:16
936 查看
Node.Js cheerio 模块可以在服务器段想使用Jquery的方式操作Dom结构,许多用法和jquery 的语法基本相同。
为服务器特别定制的,快速、灵活、实施的jQuery核心实现.
安装 npm install cheerio
实例1: 构建Dom结构
示例2:解析Dom结构,网络爬虫简单实例
为服务器特别定制的,快速、灵活、实施的jQuery核心实现.
安装 npm install cheerio
实例1: 构建Dom结构
//使用 cheerio 生成Dom 结构 var cheerio=require('cheerio'); var $=cheerio.load('<div class="container"></div>'); //console.info($); var container=$('.container'); //console.info(container); for(var i=0;i<10;i++){ //方法1 //container.append('<div class="item">'+i+'</div>'); //方法2 var item=$('<div />'); item.addClass('item'); item.text(i); container.append(item); } //console.info(container.html()); console.info($.html());
示例2:解析Dom结构,网络爬虫简单实例
var http = require('http'); var cheerio = require('cheerio'); http.get('http://www.gongjuji.net', function(req, res) { var result = ''; req.on('data', function(data) { result += data; }); req.on('end', function() { //console.info(result); parseHtml(result); }); }); //解析html 获取内容 function parseHtml(result) { var $ = cheerio.load(result); //获取html //console.info($.html()); //获取文本内容 //console.info($.text()); //获取文本,将多个空白符 替换成空格 //console.info($.text().replace(/\s+/g,' ')); //获取文本,将多个空格 替换成一个空 //console.info($.text().replace(/[ ]+/g,' ')); //获取文件,将多个换行替换成 一个换行 //console.info($.text().replace(/(\r\n)+[ ]+/g,'\r\n').replace(/(\r\n)+/g,'\r\n')); //过去文件,将多个连续换行替换成 一个换行 //console.info($.text().replace(/(\r\n)+/g,'\r\n')); //解析html内容 // itemList[] // {title:'',linkUrl:’‘} var captionList = $('.body-content .caption'); var itemList = []; captionList.each(function(item) { var cap = $(this); //console.log(cap.find('h3').text()); var item = { title: cap.find('h3').text(), linkUrl: cap.find('a').attr('href') } itemList.push(item); }); console.info(itemList); // [ { title: 'Md5加密工具', // linkUrl: 'http://md5.gongjuji.net/encrypt/' }, // { title: 'Md5解密工具', // linkUrl: 'http://md5.gongjuji.net/dencrypt/' }, // { title: '字符统计工具', // linkUrl: 'http://character.gongjuji.net/char/' }, // { title: '字节转换工具', linkUrl: 'http://calc.gongjuji.net/byte/' } ] }
相关文章推荐
- nodejs cheerio模块提取html页面内容
- 深入浅出Node.js(八):Connect模块解析(之二)静态文件中间件
- 深入浅出Node.js(八):Connect模块解析(之二)静态文件中间件
- Node.Js fs模块文件操作(一)
- Node.Js events模块(二)-EventEmitter自定义操作事件
- 小试 Node.JS 之 解析html
- Node.Js中核心模块之文件系统解析
- Node.Js fs模块文件操作(三)
- Node.js 异步异常的处理与domain模块解析
- Node.js中path模块对路径的操作
- 深入浅出Node.js(八):Connect模块解析(之二)静态文件中间件
- 解析Node.js基于模块和包的代码部署方式
- Node.js第三方模块之htmlparser2
- 夺命雷公狗---node.js---12之fs模块文件的操作
- 深入浅出Node.js(七):Connect模块解析(之一)
- 深入浅出Node.js(七):Connect模块解析(之一)
- 解析Node.js异常处理中domain模块的使用方法
- 解析Node.js基于模块和包的代码部署方式
- Node.js 异步异常的处理与domain模块解析
- Node.Js cheerio模块简单API