nodejs实现一个简单的爬虫

nodejs是js语言,实现一个爬出很是的方便。html

 

步骤

1. 使用nodejs的request模块,获取目标页面的html代码;
https://github.com/request/requestnode

2. 使用cheerio模块对html代码作处理(cheerio相似jQuery的语法,因此好用又方便)
https://github.com/cheeriojs/cheeriogit

下面咱们借助exprerss来作一个简单的nodejs爬虫系统。
http://www.expressjs.com.cn/github

 

具体实现

1. 安装依赖模块

$ npm init

初始化一个项目ajax

npm install express request cheerio --save

安装所需的模块
express用于搭建node服务
request相似于ajax的方式获取一个url里的html代码
cheerio相似于jQuery那样对所获取的html代码进行处理express

2. 根目录新建一个app.js

var express = require('express');
var app = express();
var request = require('request');
var cheerio = require('cheerio');

app.get('/', function(req, res) {
 
  request('http://www.jd.com', function(error, response, body) {
    if (!error && response.statusCode == 200) {
      $ = cheerio.load(body);
      res.json({
          cat: $('.cate_menu_item').length
      });
    }
  })
});

var server = app.listen(3000, function() {
  console.log('listening at 3000');
});

项目结构:npm

这里,咱们以京东网站为例子:json

统计边栏的类目数量,能够看到$('.cate_menu_item') 的用法彻底就像是jQuery的语法,更多例子能够在它的官网查看。app

 

查看结果

运行(咱们能够全局安装一个node-dev模块来对咱们的nodejs程序监听热刷新)网站

node-dev app

而后访问http://localhost:3000
返回了 {cat:15}

基础部分就是这样,能够借助这几个模块很方便地开发爬虫系统。

另外好比天天几点去爬,获取失败时的处理,也都有相应的node模块能够去实现。

相关文章
相关标签/搜索