Node實現簡單爬蟲
阿新 • • 發佈:2018-11-08
1、新建一個專案
- 新建一個資料夾
- 安裝依賴 cnpm i --save PACKAGE_NAME
- 寫應用邏輯
2、核心邏輯
實現爬蟲需要用到三個依賴,分別是express
、superagent
、cheerio
superagent
是個http方面的庫,可以發起get或post請求
cheerio
可理解為Node.js版的jQuery,用來從網頁中以css selector取資料,使用方式跟 jquery 一樣的。
完整的程式碼如下
var express = require('express'); var superagent = require('superagent'); var charset = require("superagent-charset"); var cheerio = require('cheerio'); charset(superagent); var app = express(); app.get('/', function (req, res, next) { // 用 superagent 去抓取 https://blog.csdn.net/ 的內容 superagent.get('https://blog.csdn.net/') .end(function (err, sres) { // 常規的錯誤處理 if (err) { return next(err); } // sres.text 裡面儲存著網頁的 html 內容,將它傳給 cheerio.load 之後 // 就可以得到一個實現了 jquery 介面的變數,我們習慣性地將它命名為 `$` var $ = cheerio.load(sres.text); var items = []; $('.clearfix .list_con .title h2 a').each(function (idx, element) { var $element = $(element); items.push({ title: $element.text().trim(), href: $element.attr('href') }); }); res.send(items); }); }); app.listen(3001, function () { console.log('app is listenling at port 3001'); });
結果: