Node.Js cheerio模块--操作/解析Html

本文介绍如何使用Node.js中的Cheerio模块来操作DOM结构,包括构建和解析DOM,适用于服务器端的轻量级jQuery替代方案。通过示例展示了如何构建DOM结构及从网页中抓取所需数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Node.Js cheerio 模块可以在服务器段想使用Jquery的方式操作Dom结构,许多用法和jquery 的语法基本相同。

为服务器特别定制的,快速、灵活、实施的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/' } ]
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值