写一个简易的数据爬虫

/**
 * 得到所有电影的html的字符串
 */
// axios在各种环境中发送网络请求。并获取到服务器响应结果
const axios = require('axios');
const cheerio = require('cheerio')
async function getMovieHtml(){
    const resp = await axios.get('https://movie.douban.com/chart');
    return resp.data;
}
// 获取所有电影数据
async function getMoviesData(){
    const html = await getMovieHtml();
    // 加载这个html字符串
    const $ = cheerio.load(html);
    var trs = $('tr.item')
    var movies = [];
    for(let i = 0; i <trs.length;i++){
        let tr = trs[i]
    //  分析每个tr的数据,得到一部电影对象
    var m = getMovie($(tr));
    movies.push(m);
    }
    return movies;

}
/**
 * 分析tr得到一部电影对象
 * @param {*} tr 
 */
 function getMovie(tr){
    var name = tr.find('div.pl2 a').text();
    name = name.replace(/\s/g,'')//去掉空白字符
    name = name.split('/')[0]
    var imgSrc = tr.find('a.nbg img').attr('src');//拿图片
    var detail = tr.find('div.pl2 p.pl').text();
    return{
        name,
        imgSrc,
        detail
    }

}
module.exports = getMoviesData;


var getMovies = require('./get');
var fs = require('fs');
getMovies().then(movies => {
    var json = JSON.stringify(movies);
    fs.writeFile('movie.json',json,function(){
        console.log('成功')
    })
    
   
})

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值