美文网首页
后端扣取前端代码中数据 -- cheerio [百万级]

后端扣取前端代码中数据 -- cheerio [百万级]

作者: squidbrother | 来源:发表于2020-03-09 15:55 被阅读0次
概述

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);

结果如下:


扣标题

相关文章

网友评论

      本文标题:后端扣取前端代码中数据 -- cheerio [百万级]

      本文链接:https://www.haomeiwen.com/subject/iarpdhtx.html