gpt4 book ai didi

javascript - Node.js 请求模块获取现代版本的网站

转载 作者:行者123 更新时间:2023-12-03 06:08:39 25 4
gpt4 key购买 nike

通常在使用 request 发出 GET 请求时Node.js 中的模块,会返回网站 HTML 的最旧版本。

例如,向 http://google.com 发出请求时会返回非常旧的 Google 版本。另一方面,在浏览器中访问 Google 将返回更现代的网站版本。

我怀疑它与 Google 等网站访问的设备/浏览器信息有关。 request 不会发送任何设备信息(据我所知)。

是否有任何方法可以欺骗网站,使其认为正在由实际设备/浏览器(以及现代设备/浏览器)访问?

最佳答案

默认情况下,请求包不包含任何设备信息(如问题所述)。像谷歌这样的大网站使用这些信息来适应页面的各个方面,比如 HTML 版本、CSS/JS 功能。更新的用户代理意味着页面可以使用更多更新的功能。要模拟任何特定设备(例如,调试移动页面),请在 useragentstring.com 选择适当的用户代理。 .

一些其他 header ,例如 acceptaccept-encoding 也会影响此问题(此处为 Doc)。

尝试以下代码(取自 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);

关于javascript - Node.js 请求模块获取现代版本的网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39421618/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com