Node.jsnode的简约爬虫

多年来在学node,那里大约记录一下。

率先是在linux的条件下,关于node的设置教程:  
https://github.com/alsotang/node-lessons/tree/master/lesson0

Node.js,本人看的学Corey面还用来express框架 键入 $ npm install express
–registry=https://registry.npm.taobao.org 来安装

这么基本的条件就弄好了,装好将来来成立项目,进度如下:

一.随便建贰个文本夹,比如身为lesson三

2.起头化(键入 $ npm init ),那里要让你设置 packag.json
文件,那几个文件是用来记录项目标新闻的,项目名,笔者什么的,借使您没事儿好写的就一路回车

三.装置依赖包,(键入
$ npm install  ---save packagename),未有点名的动静下,暗中同意从 npm
官方安装,上次我们是从天猫的源安装的。二是多了个 --save
参数,那几个参数的功力,正是会在您安装正视的同时,自动把这个重视写入
package.json

爬虫须要 superagent 和 cheerio

superagent(http://visionmedia.github.io/superagent/ ) 是个 http
方面包车型大巴库,能够倡导 get 或 post 请求

cheerio能够清楚为node端的jquery,爬虫的爬下来网页以往用接近jquery采纳器的办法就能对dom树实行操作

四.写应用逻辑

逻辑也是三步:

四.一加载正视

四.二处理爬虫

肆.三监听端口

以cnode为例,https://cnodejs.org/
能够先到页面上右键然后审查成分看看自个儿想要扒什么

新建3个app.js文件,然后上代码:

//请求依赖
var express = require('express') ;
var superagent = require('superagent') ;
var cheerio = require('cheerio') ;
var sys = require('sys') ;
var app = express() ;
//爬虫部分
app.get('/',function(req,res,next){
    superagent.get('https://cnodejs.org/')
        .end(function(err,sres){
            if(err){
                return next(err) ;
            }
            var $ = cheerio.load(sres.text) ;
            var items = [] ;
            //利用cheerio来获取页面信息,each函数来遍历所有节点
            var context = $('#topic_list .cell') ;
            context.each(function(idx,element){
                console.error(this) ;
                //作者名是从链接里扒出来的,所以用split处理一下
                var name = $(this).find('.user_avatar').attr('href').split('/')[2] ;
                var element = $(this).find('.topic_title') ;
                obj = this ;
                items.push({
                    title:element.attr('title'),
                    href:element.attr('href'),
                    author:name
                });
            });
            //将结果输出到页面
            res.send(items) ;
        });
});
//监听部分,监听3000端口
app.listen(3000,function(req,res){
    console.log('3000 is running');
});

那边注意正是和jq壹样,在二个指标的格局中调用对象要再用$()把this包起来才有相应的法子。

键入命令 $ node app.js来运营,从浏览器上访问 http://localhost:3000/
来查看结果

结果如图:

Node.js 1 

上学是比照《Node.js 包教不包会》 — by alsotang 来进展的,这里是网站
https://github.com/alsotang/node-lessons