用到了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')
})
网友评论