Node.js Request 模块

Request

request 是一个流行 Node.js 第三方 HTTP 请求工具。虽然目前市场上很多的 网络爬虫 应用,都是基于 Python,但事实上 Node.js 也写非常适合这个领域。request 这个模块,就能帮助我们构建不错的爬虫应用。

运行 npm i request 安装它。


GET 请求

const request = require('request')

request('https://www.baidu.com/', function (err, response, body) {

  /*
    response 响应信息的集合
  */

  if (!err && response.statusCode == 200) { 
    console.log(body)
  }
})

POST 请求

/*
 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')) // 下载文件到本地
Node.js 教程 Node.js 安装 Node.js NPM Node.js 模块 Node.js HTTP Node.js 文件操作 Node.js Buffer Node.js Stream Node.js Crypto Node.js Mysql Node.js Request Node.js WebSocket