node.js爬取网页图片

var http = require('http')
var fs = require('fs')
var cheerio = require('cheerio')
var url = "http://www.ivsky.com/"


function download(url, callback) {
    http.get(url, function (res) {
        var data = ''
        res.on('data', function (chunk) {
            data += chunk
        })
        res.on('end', function () {
            callback(data)
        })
    }).on('error', function (err) {
        console.log(err);
    })
}


download(url, function (data) {
    if (data){
        var $ = cheerio.load(data)
        $('img').each(function (i, elem) {
            var imgSrc = $(this).attr('src')
            http.get(imgSrc,function (res) {
                var imgData = ''
                res.setEncoding('binary')
                res.on('data',function (chunk) {
                    imgData += chunk;
                })
                console.log(imgData);
                res.on("end", function () {
                    var imgPath = "/" + i + "." + imgSrc.split(".").pop();
                    fs.writeFile(__dirname + "/img" + imgPath, imgData, "binary", function (err) {
                        console.log(err);
                    })
                })
            })
        })
    }
})

参考如下:https://www.jianshu.com/p/177ca8aaf6fb
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值