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

路加

当使用requestNode.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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

如何从Node.js http获取请求中获取数据

来自分类Dev

Node.js:从请求获取路径

来自分类Dev

在现代版本的Android中是否会自动清除任务?

来自分类Dev

Node.js模块instanceof

来自分类Dev

Node.js-带“请求”模块的PUT

来自分类Dev

Node js模块如何获取导出函数列表

来自分类Dev

Couchbase node.js模块

来自分类Dev

Node.js错误:找不到模块“请求”

来自分类Dev

使用Node JS获取外部网站内容

来自分类Dev

在Node.js请求模块上设置{“ agent”:false}

来自分类Dev

如何获取Node.js请求类型?

来自分类Dev

如何在Node.js程序中获取Node.js版本?

来自分类Dev

如何从node.js中的请求模块获取cookie?

来自分类Dev

Node.js从实例获取模块名称

来自分类Dev

Node.JS请求模块回调未触发

来自分类Dev

Node.js无法请求Squarespace网站?

来自分类Dev

Node.js https获取请求ECONNRESET

来自分类Dev

如何在Node.js Lambda中使用请求模块

来自分类Dev

使用请求模块抓取Node.js

来自分类Dev

NODE JS取消请求

来自分类Dev

如何从Node.js模块中的请求获取变量

来自分类Dev

Node.js:请求模块是否支持无模式URI?

来自分类Dev

使用请求模块的Node.JS代理

来自分类Dev

使用Node.js从网站获取图像

来自分类Dev

Node.js中的模块作用域-同时Express请求

来自分类Dev

如何使用 Node.js 获取 Windows 版本?

来自分类Dev

node.js 通过请求模块发送

来自分类Dev

现代版本中的 Linux 内核风格

来自分类Dev

Node js 逐行模块