Nodejs爬取cnode精华板块

学习nodejs已经有段时间,网上很多nodejs爬虫的文章,所以着手练习写一段nodejs爬取鼎鼎大名的nodejs中文社区精华板块大神们的头像并且把图片下载以他们的昵称命名。

  • 详细代码如下所示,本文用到几个模块,主要是request(作为http代理端),cheerio(类似于浏览器端的jquery),核心模块(fs,path):
const request=require('request');
const cheerio=require('cheerio');
const fs=require('fs');
const path=require('path');
const url="https://cnodejs.org/?tab=good&page=";
for(let i=1;i<=16;i++){
    request(url+i,(error,response,body)=>{
        if(error && response.statusCode==200){
            console.log(error);
        }
        accepteData(body);
    });
}
    
function accepteData(data){
    let $=cheerio.load(data);
    let userNames=$('.user_avatar img').toArray();
    for(let i=0;i{
            console.log('loading image'+i);
        });
    }
    
}
function basicName(addr){
    let filename=path.basename(addr);
    return filename;
}
function downloadFile(uri,filename,cb){
    
    request.head(uri,(error,response,body)=>{
        if(error){
            uri='https:'+uri;
        }
        request(uri).pipe(fs.createWriteStream('images/'+filename+'.jpg')).on('close', cb);
    })
}
Nodejs爬取cnode精华板块_第1张图片
大神头像序列

你可能感兴趣的:(Nodejs爬取cnode精华板块)