Nodejs入门基础,Egg之CURL的get和post请求

我们在学习nodejs时,我觉得比较简单的应用还是从爬虫着手去学习。毕竟我们在做项目的时候,没有数据也不方便分析。

我这里应用了egg的框架,不了解egg的可以查看官方文档,这里就不介绍了。
我们先说下CURL请求:
curl 是常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思。

它的功能非常强大,命令行参数多达几十种。如果熟练的话,完全可以取代 Postman 这一类的图形界面工具。

默认情况下curl时不带任何参数,默认就是用get请求;

curl https://www.example.com
egg的get请求方式:

this.ctx.curl(url, option)
url:当然是请求地址了
option:
method
请求方法,默认为GET。可以是GET,POST,DELETE或PUT
data
要发送的数据。将自动进行字符串化
dataType
字符串-响应数据的类型。可能是text或json
headers
请求标头
timeout
请求超时
auth
username:password在HTTP基本授权中使用
followRedirect
遵循HTTP 3xx响应作为重定向。默认为false
gzip
让您在请求连接时获取res对象,默认为false
nestedQuerystring
urllib默认使用querystring对不支持嵌套对象的表单数据进行字符串化,通过将此选项设置为true,将使用qs而不是querystring支持嵌套对象
如果请求的结果返回的是json数据,则需要指定数据类型

this.ctx.curl('https://www.example.com', {dataType: 'json'})
那么一个完整的get/post请求就是

this.ctx.curl('https://www.example.com', {
  method: 'GET/POST',
  dataType: 'json',
  headers: {
       token: 'xxx'  
  },
  data: {
    id: 1
  }
  ...
})
值得注意一点就是,我们在请求到的数据是整个网络体,我们真正需要的数据也就是网页体在data中。
掌握curl请求之后就可以抓取数据了,至于抓取到的数据怎么分析,就看你自己了。