美文网首页
nodejs爬取豆瓣排名250的电影并按照评分排序

nodejs爬取豆瓣排名250的电影并按照评分排序

作者: 来了啊小老弟 | 来源:发表于2020-01-15 16:22 被阅读0次

用到了nodejs的express,request,cheerio插件

var express = require('express')
var request = require('request');
const cheerio = require('cheerio')
var app = express();
app.get('/spider', (req,res)=>{
  var arr=[];
  var index = 0;
  new Promise((resolve)=>{
    for(let j=0;j<=225;j=j+25){
      request('https://movie.douban.com/top250?start='+j, function (error, response, body) {
        const $ = cheerio.load(body) // 当前的$拿到了整个前端的选择器 可理解为jquery的$
        for(let i = 0;i< $('.pic').length;i++){
          arr.push({
            id:j+i,
            name:$('.pic').eq(i).find('a').find('img').attr('alt'),
            url:$('.pic').eq(i).find('a').attr('href'),
            num:$('.rating_num').eq(i).text()
          })
        }
        index++
        if(index === 10){
          resolve(arr)
        } 
      });
    }
  }).then((data)=>{
    res.json({
      data:data.sort(compare('num')),
      total:data.length
    })
  })
})
/**
 * @Description: 排序方法
 * @Author: wjn
 * @Date: 2020-01-15 16:16:20
 */
function compare(property){
  return function(a,b){
      var value1 = a[property];
      var value2 = b[property];
      return value2 - value1;
  }
}
app.listen(3001, ()=>{
  console.log('server start')
})

相关文章

网友评论

      本文标题:nodejs爬取豆瓣排名250的电影并按照评分排序

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