nodeJS实现简易爬虫

Posted sgs123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nodeJS实现简易爬虫相关的知识,希望对你有一定的参考价值。

nodeJS实现简易爬虫

需求:使用nodeJS爬取昵图网某个分类下的图片并存入本地

  • 运用nodeJS自带系统模块http、fs

    示例代码:

var http =require('http');
var fs =require('fs');

var curentPage=1; //当前图片页数
var maxcurentPage=5;//最大页数
//获取图片地址
function getData()
    let url = 'http://www.nipic.com/photo/xiandai/jiaotong/index.html?page='+curentPage
    http.get(url,(res)=>
        var data = '';
        res.on('data',(a)=>
            data+=a.toString();
        )
        res.on('end',()=>
            let reg = /<img src="(.+?)" data-src="(.*?)"  alt="(.*?)" \/>/g
            let arr=[];
            while (reg.exec(data))
                arr.push(reg.exec(data)[2]);
            
            for(i in arr)
                (function(i)
                    setTimeout(()=>
                        getImg(arr[i])
                    ,500*i)
                )(i)
            
            if (curentPage < maxcurentPage)
                curentPage++;
                arguments.callee();
            
        )
    )

//图片写入img文件夹
function getImg(url)
    let u = url.replace(/\/pic\//,'/file/')
        .replace(/_4.jpg/,'_2.jpg');
    http.get(u,(res)=>
        let name = new Date().getTime();
        let stream = fs.createWriteStream('./img/' + name + '.png');
        res.pipe(stream);
    )

getData();

以上是关于nodeJS实现简易爬虫的主要内容,如果未能解决你的问题,请参考以下文章

Python实现--简易视频爬虫

python简易爬虫实现

简易爬虫实现校园网剩余流量查询

重学Node.js 第4篇实现一个简易爬虫&启动定时任务

Scala实现简易爬虫

node爬虫的几种简易实现方式