核心代码
lib/crawler.js,内容:
//目标站地址url请求库 var superagent = require('superagent') //dom字符串转换库,可以将得到的字符串转为dom对象,用jquery方式操作文本内容 var cheerio = require('cheerio') exports.get = function (url) { return new Promise(function (resolve) { superagent.get(url).end(function (err, pres) { var $ = cheerio.load(pres.text) resolve($) }) }) }index.js入口文件
//http服务器创建库 var express = require('express') var app = express() //解决异步回调问题,在请求多个url时可等待最后一个请求完成再输出 var eventproxy = require('eventproxy') var ep = new eventproxy() //jquery处理库 var crawler = require('./lib/crawler.js') app.get('/', function (req, res) { //url为请求站点的地址 crawler.get(url).then($ => { //$用jquery的语法获取网页中需要的内容 let html='获取到的内容' //输出到浏览器界面 res.send(html) }) }) var server = app.listen(8081, function () { var host = server.address().address var port = server.address().port console.log('应用实例,访问地址为 http://localhost:' + port, host, port) })eventproxy 用法: 首先创建一个eventproxy实例
var ep = new eventproxy() //在完成函数里注册事件: ep.emit('事件名','参数可选') //事件完成时回调,count参数为重复事件被执行的次数 ep.after('事件名', count, function ('注册事件时传入的参数') { //最终返回 res.send(html) })在项目根目录按住shift键点击鼠标右键打开PowerShell窗口,程序的控制操作都在该窗口进行: npm命令: 安装superagent:npm install superagent 安装cheerio:npm install cheerio 安装eventproxy:npm install eventproxy
node index.js启动服务,浏览器访问http://localhost:8081界面可输出爬取到的内容