這里假設你已經安裝好node.js和npm,如果沒有安裝,請參閱其他教程安裝。
配置
首先是來配置package.json文件,這里使用express,request和cheerio。
package.json如下:
{"name": "node-scrape","version": "0.0.1","description": "Scrape","main": "server.js","dependencies": {"express" : "latest","request" : "latest","cheerio" : "latest"}
}
npm 安裝
把package.json文件放到一個你自己定義的文件夾(nodejs_scrape)下,然后在命令行下執行
cd nodejs_scrape
npm install
抓取內容
在nodejs_scrape目錄下新建一個server.js文件,先定義如下變量的和方法
var express = require('express');
var fs = require('fs');
var request = require('request');
var cheerio = require('cheerio');
var app = express();app.get('/',function (req,res) {//抓取內容的方法
});app.listen('8081'); //使用8081端口console.log('Magic happens on port 8081');exports = module.exports = app;
下面我們就來完善get方法的內容
首先定義要抓取的url,這里以segmentfault為例
url = 'https://segmentfault.com/news';
頁面如下面所示,點擊F12查看,我們就提取最簡單的 class="mr10" 這個標簽
抓取內容的方法如下
request(url, function (err,res,html) {if (!err){ var $ = cheerio.load(html);var title;$('.mr10').filter(function () {var data = $(this);title = data.text(); //獲取標簽的內容console.log('title is ' + title); //控制臺打印});}});
server.js完整代碼如下
/*** Created by Administrator on 2017/3/1.*/
var express = require('express');
var fs = require('fs');
var request = require('request');
var cheerio = require('cheerio');
var app = express();app.get('/',function (req,res) {//all scrape magic will happen hereurl = 'https://segmentfault.com/news';request(url, function (err,res,html) {if (!err){var $ = cheerio.load(html);var title;$('.mr10').filter(function () {var data = $(this);title = data.text();console.log('title is ' + title);});}});});app.listen('8081');console.log('Magic happens on port 8081');exports = module.exports = app;
運行
在nodejs_scrape目錄下運行 node server ,可以看到如下所示
在瀏覽器運行http://127.0.0.1:8081/
,可以看到抓取的內容如下:
這樣我們就完成了一個簡單到不能再簡單的node.js爬蟲。