nodejs實現一個簡單的爬蟲


nodejs是js語言,實現一個爬出非常的方便。

 

步驟

1. 使用nodejs的request模塊,獲取目標頁面的html代碼;
https://github.com/request/request

2. 使用cheerio模塊對html代碼做處理(cheerio類似jQuery的語法,所以好用又方便)
https://github.com/cheeriojs/cheerio

下面我們借助exprerss來做一個簡單的nodejs爬蟲系統。
http://www.expressjs.com.cn/

 

具體實現

1. 安裝依賴模塊

$ npm init

初始化一個項目

npm install express request cheerio --save

安裝所需的模塊
express用於搭建node服務
request類似於ajax的方式獲取一個url里的html代碼
cheerio類似於jQuery那樣對所獲取的html代碼進行處理

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');
});

項目結構:

這里,我們以京東網站為例子:

統計邊欄的類目數量,可以看到$('.cate_menu_item') 的用法完全就像是jQuery的語法,更多例子可以在它的官網查看。

 

查看結果

運行(我們可以全局安裝一個node-dev模塊來對我們的nodejs程序監聽熱刷新)

node-dev app

然后訪問http://localhost:3000
返回了 {cat:15}

基礎部分就是這樣,可以借助這幾個模塊很方便地開發爬蟲系統。

另外比如每天幾點去爬,獲取失敗時的處理,也都有相應的node模塊可以去實現。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM