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
更多教程 HTML5 教程 CSS3 教程 JavaScript 教程 JQuery 教程 React.js 教程 Node.js 教程 Koa2 教程 Python 教程 Linux 教程