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模塊能夠去實現。

相關文章
相關標籤/搜索