• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

nodejs爬虫学习

武飞扬头像
ZZanZan
帮助1

1,引入所需依赖

const  https = require('https');
const fs = require('fs');
const cheerio = require('cheerio');

2,业务代码展示

https.get('网址',function(res) {
    // 分段返回, 自己拼接
    let html = '';
    // 有数据产生的时候 拼接
    res.on('data',function(chunk) {
        html  = chunk;
    })
    res.on('end',function() {
        const $ = cheerio.load(html);
        let allFilms = [];
        $('li .item').each(function() {
            //  this 循环时 指向当前这个电影
            //  当前这个电影下面的title
            const title = $('.title',this).text();
            const star = $('.rating_num',this).text();
            const pic = $('.pic img',this).attr('src');
            allFilms.push({
                title,star,pic
            })
        })
        // 把数组写入json里面
        fs.writeFile('./films.json',JSON.stringify(allFilms),function(err){
            if(!err) {
                console.log('文件写入完毕');
            }
        })
        // 下载图片
        downloadImage(allFilms);
    })
})
 
function downloadImage(allFilms) {
    for(let i=0; i<allFilms.length; i  ) {
        const picUrl = allFilms[i].pic;
        console.log('获取图片',picUrl);
        // 请求 -》 拿到数据
        // fs.writeFile('./xx.png','内容')
        https.get(picUrl,function(res) {
            res.setEncoding('binary');
            let str = '';
            res.on('data',function(chunk) {
                str  = chunk;
            })
            res.on('end',function() {
                fs.writeFile(`./images/${i}.png`,  str, 'binary' ,function(err) {
                    if(!err) {
                        console.log(`第${i}张图片下载成功`);
                    }
                })
            })
        })
    }
}

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhibcbke
系列文章
更多 icon
同类精品
更多 icon
继续加载