概述
Fast, flexible & lean implementation of core jQuery designed specifically for the server.
快速,灵活和精益实现的核心jQuery专为服务器设计
周下载量(Weekly Downloads)
4,375,541
安装以及使用
安装:
npm install cheerio -S
使用:
前端代码段
<ul id="fruits">
<li class="apple">Apple</li>
<li class="orange">Orange</li>
<li class="pear">Pear</li>
</ul>
后端扣取数据
const cheerio = require('cheerio');
const $ = cheerio.load('<ul id="fruits">...</ul>');
$('.apple').text()
//=> Apple
实例
扣取豆瓣某一个列表
const Koa = require('koa');
const KoaRouter = require('@koa/router');
const app = new Koa();
const router = new KoaRouter();
const axios = require('axios');
//cheerio
const cheerio = require('cheerio')
let $ = '';
let movieRes = [];
let tempTxt = '';
//配置路由
router.get('/index',async(ctx,next)=>{
ctx.body = '首页';
});
router.get('/news',async(ctx,next)=>{
ctx.body = '新闻';
//获取新闻信息
try{
var _links = 'https://movie.douban.com/top250';
var dataAll = await axios.get(_links);
if(dataAll.status==200){
//1.获取代码段
$ = cheerio.load(dataAll.data);
//2.扣取字段
$('.article li').each((index,ele)=>{
var _txt = $(ele).find('.info span').eq(0).text();
//console.log(_txt);
movieRes.push(_txt);
});
ctx.body = movieRes;
};
}catch(err){
console.log('err');
console.log(err);
}
});
//404
app.use(async(ctx,next) => {
await next();
//console.log(ctx)
if(ctx.status!=200){
ctx.body = '无此页面'; //404处理 错误处理 中间件
ctx.redirect('/index') ; //重定向到某个页面
}
});
app.use(router.routes());
app.use(router.allowedMethods()); /*可加可不加,放在启动理由后面 根据ctx.status设置响应头*/
app.listen(3002);
结果如下:
扣标题
网友评论