本文共 2042 字,大约阅读时间需要 6 分钟。
Node.Js cheerio 模块可以在服务器段想使用Jquery的方式操作Dom结构,许多用法和jquery 的语法基本相同。
为服务器特别定制的,快速、灵活、实施的jQuery核心实现.
安装 npm install cheerio
实例1: 构建Dom结构
//使用 cheerio 生成Dom 结构var cheerio=require('cheerio');var $=cheerio.load(' ');//console.info($);var container=$('.container');//console.info(container);for(var i=0;i<10;i++){ //方法1 //container.append(''+i+''); //方法2 var item=$(' '); 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/' } ]}
转载地址:http://jyogi.baihongyu.com/