如何解决NodeJS GET请求在本地计算机上运行,但不在远程VM内运行
我正在尝试创建一个简单的工具,该工具将访问特定的Facebook页面并提取一些数据。我为此使用NodeJS。我对GET请求使用内置的https模块。我的本地计算机上的东西运行正常,但是在VM内无法获取响应,每次都失败。
我也尝试过axios,但是它也不起作用。
以前,我认为这可能是防火墙问题,但我启用了防火墙内部的所有功能,但也无法正常工作。我正面临着一个非常奇怪的问题。
这可能是什么原因?
Facebook是否阻止了我的请求?无权利?我也在发送User-Agent标头,但是它不起作用。
我的代码如下:
const options = {
hostname: 'www.facebook.com',// port: 443,path: `/${username}`,method: 'GET',headers: {
'user-agent':
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/60.0.3112.113 Safari/537.36','Accept-Language': 'en-GB,en-US;q=0.8,en;q=0.6',},};
const request = https.request(options,(response) => {
let body = '';
console.log('response : \n' + response);
response.setEncoding('utf8');
response.on('data',(chunk) => {
body += chunk;
console.log('response on data chunk : \n' + chunk);
});
response.on('end',() => {
console.log('body : \n' + body);
const arrMatches = body.match(rePattern);
if (arrMatches && arrMatches.length > 1) {
resolve(arrMatches[1]);
} else {
reject(new Error('Facebook user not found'));
}
});
});
request.on('error',(err) => {
console.log('request error : \n' + err);
reject(err);
});
request.end();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。