当使用request
Node.js中的模块发出GET请求时,通常会返回网站HTML的最旧版本。
例如,当向http://google.com发出请求时,会返回一个非常旧的Google版本。另一方面,在浏览器中访问Google会返回该网站的现代版本。
我怀疑这与Google等网站访问的设备/浏览器信息有关。request
不发送任何设备信息(据我所知)。
是否有任何方法诱使站点认为实际的设备/浏览器(以及现代的设备/浏览器)正在访问?
默认情况下,请求包不包含任何设备信息(如问题所述)。像google这样的大网站会使用此信息来适应页面的各个方面,例如HTML版本,CSS / JS功能。较新的用户代理意味着该页面可以使用更多和较新的功能。要模拟任何特定设备(例如,要调试移动页面),请在useragentstring.com上选择适当的用户代理。
其他一些标头也喜欢accept
并且accept-encoding
也可能会影响此标头(此处为文档)。
尝试以下代码(摘自docs):
var request = require('request');
var options = {
url: 'https://google.com',
headers: {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'
}
};
function callback(error, response, body)
{
console.log(body);
}
request(options, callback);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句