如何在 node.js 中发出 https 请求
How to make a https request in node.js
我需要做一个爬虫。对于 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();
但我必须为 https://example.com/foo/example 制作一个爬虫
如果我对 https://example.com/foo/example 使用相同的方法,则会出现此错误
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 请求模块:http://unirest.io/nodejs.html
您可以安装它:
npm install -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);
});
我需要做一个爬虫。对于 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();
但我必须为 https://example.com/foo/example 制作一个爬虫 如果我对 https://example.com/foo/example 使用相同的方法,则会出现此错误
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 请求模块:http://unirest.io/nodejs.html
您可以安装它:
npm install -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);
});