request 是一个流行 Node.js 第三方 HTTP 请求工具。虽然目前市场上很多的 网络爬虫
应用,都是基于 Python,但事实上 Node.js 也写非常适合这个领域。request 这个模块,就能帮助我们构建不错的爬虫应用。
运行 npm i request
安装它。
const request = require('request')
request('https://www.baidu.com/', function (err, response, body) {
/*
response 响应信息的集合
*/
if (!err && response.statusCode == 200) {
console.log(body)
}
})
/*
application/x-www-form-urlencoded (普通表单)
*/
request.post({url:url, form:{key:'value'}}, function (error ,response, body) {
// 返回的结果和 GET 一样
})
/*
application/json (JSON表单)
*/
request({
url: url,
method: "POST",
json: true,
headers: {
"content-type": "application/json",
},
body: JSON.stringify({key: 'value'})
}, function(error, response, body) {
// ...
})
/*
multipart/form-data (上传文件)
*/
var url = 'http://192.168.0.102:3000/home'
var formData = {
// 普通文本
field: 'value',
// 文件
file: fs.createReadStream('./img.jpg'),
}
request.post({url:url, formData: formData}, function (error, response, body) {
// ...
})
一个 request 结合 pipe 重定向文件流的实例。
request('https://www.jmjc.tech/public/home/img/flower.png').pipe(fs.createWriteStream('./flower.png')) // 下载文件到本地