【nodejs爬虫系列】02--web应用express框架

浏览: 2027

引言

我们要搭个简单的web服务,为我们的爬虫提供几个API,python和nodejs都是不错的选择。Express是个简洁而灵活的nodejs Web应用框架,用其可以快速地搭建一个完整功能的网站。

安装Express

按上篇(https://ask.hellobi.com/blog/jasmine3happy/11882)配置好环境后,我们就来安装express,有几个重要的模块是需要与express框架一起安装的。

cnpm install express --save
cnpm install body-parser --save
cnpm install cookie-parser --save
cnpm install multer --save

这里说明下这几个模块的功能。

body-parser: 用于处理JSON,Raw,Text和URL编码的数据。

cookie-parser:解析Cookie的工具。可以通过req.cookies取到传递的cookie,并把它们转成对象。

multer:用于处理enctype="multipart/form-data"(设置表单的MIME编码)的表单数据。

简单应用

入门例子这个页面上有(http://www.runoob.com/nodejs/nodejs-express-framework.html),可以对照着敲一敲,我在这不多加演示了。我需要express主要是为搭个爬虫的中间服务用的,我也就以此简单举例。

const express = require('express') 
const bodyParser = require("body-parser");
const request = require('request');
const app = express();
app.use(bodyParser.urlencoded({extended: false}));
app.use(bodyParser.json());

var requestAction = function (url) {
return new Promise(function (resolve, reject) {
request({url: url}, function (error, response, body) {
if (error) return resolve('');
resolve(body);
})
});
};

app.post('/', function (req, res) {
// post中的参数url
    var url=req.body.url;
    console.log('即将访问:' + url);
// post中的参数operator
var operator=req.body.operator;
console.log('自定义操作:' + operator);
(async() => {   
//异步返回url的网页源码
var html= await requestAction(url);
res.send(html);
})();
console.log('------访问成功--------');
})

app.listen(5000, function () {
console.log("-----程序启动-----")
})

将上述代码写入新的文件,如 node_learn.js中,保存并运行。

然后我们在python中尝试用requests.post()来访问一下吧。

import requests
url = 'http://localhost:5000/' # 上述nodejs运行在本地,监听端口为5000
paras = {'url':'https://www.hellobi.com/',
'operator':''
}
res = requests.post(url, data=paras)
print(res.text)

image.png

image.png


说明我们用nodejs搭建的web服务是有效的,成功返回数据了。

推荐 0
本文由 _缘君_ 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册