这里假设你已经安装好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_scrapenpm 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 here url = '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爬虫。