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

原创 2016年08月31日 12:16:44

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/' } ]
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

小试 Node.JS 之 解析html

最近弄了下node.js,写了个解析html来获取信息的demo。 初试手,那此blog来开刀了。。。。上代码先: test.js ==> var $ = require('jque...

Node.Js cheerio模块简单API

###cheerio为服务器特别定制的,快速、灵活、实施的jQuery核心实现.###Introduction将HTML告诉你的服务器 var cheerio = require('cheerio')...

Node.js:request+cheerio爬虫爬取免费代理

背景在极客学院的微信公众号上看到了一个Node.js写爬虫的入门教程——用nodejs去爬一下A站老司机的文章,感觉挺有意思,于是动手写一下。又想起有位大神用python写过一个抓免费代理的爬虫,于是...

nodejs环境下html的解析(宅男福利)

nodejs环境下html的解析nodejs环境下,对妹子图网站的数据进行获取/解析/并利用express对客户端进行json数据的返回。 本文主要解决了:1.jquery解析请求过来的html如何...

nodejs+cheerio 爬虫入门

var http = require('http'); var cheerio = require('cheerio'); var url = require('url'); var zlib = r...

nodejs request模块gzip response的解压问题

参看:https://github.com/mikeal/request/issues/747 这个解决方法太蛋疼了,原来需要在

Node.js学习之网络爬虫(使用cheerio抓取网页数据)

准备工作 1.安装node.js开发环境:http://www.runoob.com/nodejs/nodejs-install-setup.html 2.了解cheerio库 英文:https...

node入门(二)-- 模块系统/cheerio/webSocket

node入门(二)-模块系统/cheerio/webSocket CommonJS(cmd规范) -- 同步加载 exports、module.exports、require('./xx.js')

Node.js使用cheerio抓取网页数据DEMO

Node.js,原本是用来做Js服务器的,但是现在咱们一起来使用他做个抓取 关键是抓取到网页之后如何获取到想要的数据呢?然后就发现了cheerio,用来解析html非常方便,就像在浏览器中使...

Node.js npm cheerio

译自 https://www.npmjs.com/package/cheeriocheerio Tiny, fast, and elegant implementation of core jQu...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)