我可以在nodejs中抓取一个网页,但我需要先验证自己.在curl中,您可以使用curl –user user:password [url]执行此操作.
如何在节点中获得相同的结果?
解决方法
您只需要为HTTP请求添加授权标头. Authorization标头应包含用冒号结合的用户名和密码,然后应使用冒号进行Base64编码,然后使用Basic和单个空格.
var header = 'Basic ' + new Buffer(user + ':' + pass).toString('base64');
这是一个涉及GET请求的完整示例.
var http = require('http'); var user = 'username'; var pass = 'password'; var auth = new Buffer(user + ':' + pass).toString('base64'); var options = { host: 'example.com',port: 80,path: '/path',headers: { 'Authorization': 'Basic ' + auth } }; http.get(options,function(res) { // response is here });