Nodejs学习总结一(微博爬虫)

从入门到放弃

导语

Nodejs是使用javascript编写,运行在服务器上的,实际上就是用的浏览器的V8引擎。

一.基本内容

我也不知道该写什么QAQ,反正很多都是和javascript一样的,不同的是在node环境下才能运行。有很多个模块,第一次使用还要安装,各个模块之间通过require来关联。

二.一个发微博的小demo

  • 用到http,querystring两个模块,先关联先
  var http=require('http');
  var querystring=require('querystring');
  • 将要发送的内容转码
    使用querystring.stringify方法将内容转义,具体的格式需要去你的目标网站的ajax请求里看,以微博为例
//weibo.com里的
var postData=querystring.stringify({
    'location':'v6_content_home',
    'style_type':1,
    'text':'此条信息由代码发送',
    'module':'stissue',
    'pub_source':'main_',
    'pub_type':'dialog',
    '_t':0
});
  • 写数据头
var options={
    hostname:'weibo.com',
    part:80,
    path:'/aj/mblog/add?ajwvr=6&__rnd=1473507636522',
    method:'POST',
    headers:{
        'Accept':'*/*',
        'Accept-Encoding':'gzip, deflate',
        'Accept-Language':'zh-CN,zh;q=0.8,en;q=0.6',
        'Connection':'keep-alive',
        'Content-Length':postData.length,
        'Content-Type':'application/x-www-form-urlencoded',
        'Cookie':'SINAGLOBAL=4985208110960.924.1470552230960; wvr=6; [email protected]; YF-V5-G0=55fccf7be1706b6814a78384fa94e30c; SCF=AsV_DxZ8YydDJVCeTBVIDfNvxpRFRBswSB_o_hv11cKZsl4keccX7lzPaDqiR2v7S89y8QhoMeUu9nguMgdTgD8.; SUB=_2A25614FUDeTxGeRM6lUT8CfMyziIHXVZpPWcrDV8PUNbmtBeLU2tkW8m9eMNf_wMo7nalyuVEev2sdALqg..; SUBP=0033WrSXqPxfM725Ws9jqgMF55529P9D9W5WdJVuCl-za7_NhdBXHHNZ5JpX5KMhUgL.FozEeKMEeh.7ehB2dJLoI0qLxKBLBonL12BLxK-L12qLB-2LxKqL1KnLB-qLxKBLBonLB-2LxKML1-eL12zLxK-LB--LBKzt; SUHB=0FQ660L0xrePgJ; ALF=1505043588; SSOLoginState=1473507589; _s_tentry=login.sina.com.cn; UOR=,,login.sina.com.cn; Apache=8404689097517.37.1473507589378; ULV=1473507590825:68:20:13:8404689097517.37.1473507589378:1473474011382; YF-Page-G0=074bd03ae4e08433ef66c71c2777fd84',
        'Host':'weibo.com',
        'Origin':'http://weibo.com',
        'Referer':'http://weibo.com/u/2217209004/home?wvr=5',
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36',
        'X-Requested-With':'XMLHttpRequest'
    }
}
  • 发送http请求
var req=http.request(options,function(res){
    //打印状态码和头信息
    console.log('Status:'+res.statusCode);
    console.log('headers'+JSON.stringify(res.headers));
    //信息流,触发
    res.on('data',function(chunk){
        //看返回的
        console.log(Buffer.isBuffer(chunk));
        console.log(typeof chunk);
    });
       //结束后打印信息
    res.on('end',function(){
        console.log('评论完毕!!');
    });
});
//有错误的话抛出错误信息
req.on('error',function(e){
    console.log('Error'+e.message);
});
//将数据写入请求
req.write(postData);
//手动结束,即使没有数据
req.end();

然后就大功告成啦!!!


Nodejs学习总结一(微博爬虫)_第1张图片
自己的微博实验

你可能感兴趣的:(Nodejs学习总结一(微博爬虫))