Javascript 如何在node.js中发出https请求

Javascript 如何在node.js中发出https请求,javascript,node.js,https,Javascript,Node.js,Https,我需要做一个爬虫。对于http请求,我曾经这样做 var http=require('http'); var options={ host:'http://www.example.com', path:'/foo/example' }; callback=function(response){ var str=''; response.on('data',function(chunk){ str+=chunk; }); response.on('end', fun

我需要做一个爬虫。对于http请求,我曾经这样做

 var http=require('http');
 var options={
   host:'http://www.example.com',
   path:'/foo/example'
 };

 callback=function(response){
 var str='';
 response.on('data',function(chunk){
 str+=chunk;
 });
 response.on('end', function () {
       console.log(str);
 });
 }
 http.request(options, callback).end();
但我必须为你做一个爬虫 如果我使用相同的方法,则会产生此错误

 events.js:72
    throw er; // Unhandled 'error' event
          ^
Error: getaddrinfo ENOTFOUND
at errnoException (dns.js:37:11)
at Object.onanswer [as oncomplete] (dns.js:124:16)

我推荐这个优秀的HTTP请求模块:

您可以通过以下方式安装它:

npm安装-g unirest

下面是一些使用Unirest的节点代码示例:

  var url = 'https://somewhere.com/';
  unirest.get(url)
    .end(function(response) {
      var body = response.body;
      // TODO: parse the body
      done();
    });
…因此,要在www.purple.com上获取HTML,请执行以下操作:

#!/usr/bin/env node

function getHTML(url, next) {
  var unirest = require('unirest');
  unirest.get(url)
    .end(function(response) {
      var body = response.body;
      if (next) next(body);
    });
}

getHTML('http://purple.com/', function(html) {
  console.log(html);
});

您检查了吗?我得到的数据(元素及其属性)与inspect元素中可见的数据不同。这是完全不同的,或者可以说encoded.unirest.get(url)将在url处获取文本数据。当你检查页面时,你看到的是JavaScript运行过的页面——因此你没有看到原始HTML——你看到的是JavaScript mods之后的DOM。那么你能告诉我们如何查看原始HTML吗。谢谢