使用node.js爬网站图

目标网站:http://m.mmjpg.com/hot/

var http = require('http');
var request = require('request');
var fs = require('fs');
var Promise = require('bluebird');
var curIndex = 1
var curYear = 2015
//下载文件
function downloadFile(uri,filename){
    return new Promise((resolve, reject)=> {
        console.log("downloadURL:"+uri);
        request({uri: uri, encoding: 'binary', method:"GET", headers:{
                referer: "Referer"
            }}, (error, response, body) => {
            if (!error && response.statusCode == 200) {
                fs.writeFileSync(filename, body, 'binary')
                console.log("downloaded:" + filename)
                resolve();
            }
        })
    });
}
 
var downDest = "D:/MeiziTu"; //下载路径,可改成自己的文件夹,需要提前建立好
var downloadArr = [];
while(curYear <= 2018) {
    let yearPath = downDest + "/" +curYear;
    if (!fs.existsSync(yearPath)) {
        fs.mkdirSync(yearPath)
    }
    while (curIndex < 2000){
        var filename = curIndex + ".jpg";
        var url = "http://img.mmjpg.com/large/" + curYear + "/" + filename;
        var path = yearPath + "/" + filename;
        downloadArr.push({url: url, path: path})
        curIndex += 1;
    }
    curYear+=1;
}
 
// 串行执行
Promise.mapSeries(downloadArr, (item)=>downloadFile(item.url, item.path)).then(()=>{
    console.log("全部任务执行完成");
})
运行方法
1. 安装 node 运行环境,去 官网:
https://nodejs.org/zh-cn/ 下载安装即可。
2. 安装bluebird库,控制台输入命令 npm install bluebird 即可安装。

3. 新建一个 js 文件,复制上面的代码,在控制台 使用 node 你的文件名.js 即可运行,如下图。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值