通过Web浏览器从Node.js发送请求

时间:2019-07-12 07:20:54

标签: javascript node.js web-scraping request

是否可以通过网络浏览器在Node.js中使用请求模块或类似模块发送请求。我正在尝试加载一个URL,但它在CURL和node.js请求响应中给出了不同的结果。 用简单的话说,我试图从URL中获取数据,它在浏览器和curl中显示正确的结果,但是在nodejs脚本中显示不同的结果。我试图通过发送相似的标头来伪造浏览器,但仍然能够检测到它。

这是我的nodejs代码

var request = require('request');

var headers = {
    'Connection': 'keep-alive',
    'Cache-Control': 'max-age=0',
    'Upgrade-Insecure-Requests': '1',
    'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
    'Accept-Encoding': 'gzip, deflate, br',
    'Accept-Language': 'en-US,en;q=0.9',
    'If-None-Match': 'W/"aa-z+ebXSEdArbZ+EXlN/WQjf6HV8c"',
    'Cookie': '_user=331kwr234'
};

var options = {
    url: 'http://www.example.com/',
    headers: headers
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);

0 个答案:

没有答案