在 Node.js 中处理用户代理
User-Agent 是字符串形式的信息。此字符串让服务器识别来自 Web 浏览器的传入请求的应用程序类型、操作系统、版本和供应商。用户代理的通用结构将是-
User-Agent: product / product-version comment
在这里,发送请求的 Web 浏览器的名称将写在product中。产品的版本会写在product-version中,注释是可选的。它包含有关产品的更多信息。例如,如果 Web 浏览器是 Firefox,那么用户代理将是 -
Mozilla/5.0 (system-information)
platform (platform-details) extensions
User-Agent 模块提供 Web 浏览器属性。它还提供了阻止自动浏览器所需的数据。
设置用户代理模块:要启用此模块,首先需要使用package.json文件初始化应用程序,然后安装用户代理模块。所以,让我们首先用 package.json 文件初始化我们的应用程序——
npm init
现在,使用 - 安装模块
npm install user-agents --save
要在您的应用程序中使用此模块,只需编写以下代码 -
const userAgent = require('user-agents');
实现:安装模块后,现在让我们看看这个模块的一些实现。这个模块的基本实现是生成随机用户代理。要生成随机用户代理,请在 main.js 文件中编写以下代码 -
const UserAgent = require('user-agents');
const userAgent = new UserAgent();
console.log(userAgent.toString());
在这里,我们在new关键字的帮助下创建了一个 User-Agent 模块的实例。然后,我们在控制台中记录随机生成的用户代理的字符串格式。上述代码的输出将是 -
Mozilla/5.0 (Windows NT 10.0; Win64; x64)
AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/80.0.3987.132 Safari/537.36
此外,如果我们想以 JSON 格式打印数据,请编写以下代码 -
const UserAgent = require('user-agents');
const userAgent = new UserAgent();
console.log(JSON.stringify(userAgent.data, null, 1));
在这里, stringify()函数会将 JavaScript 值转换为 JSON。它需要三个参数,第一个是要转换成 JSON 的值,第二个参数是用来转换结果的替换函数,第三个参数是添加缩进、字符,以便转换成 JSON字符串易于阅读。
上述代码的输出将是 -
{
"appName": "Netscape",
"connection": {
"downlink": 10,
"effectiveType": "4g",
"rtt": 100
},
"platform": "Win32",
"pluginsLength": 3,
"vendor": "Google Inc.",
"userAgent":
"Mozilla/5.0 (Windows NT 6.1; Win64; x64)
AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/80.0.3987.132 Safari/537.36",
"viewportHeight": 790,
"viewportWidth": 1580,
"deviceCategory": "desktop",
"screenHeight": 900,
"screenWidth": 1600,
"weight": 0.00007295599223907504
}
该模块还提供了限制应用程序仅在指定设备中使用的功能。例如 -
const UserAgent = require('user-agents');
const userAgent = new UserAgent({ deviceCategory: 'mobile' })
在这里,我们将我们的应用程序限制为只能在移动设备中使用。除了移动设备,我们还可以编写桌面或平板电脑。
此外,如果您想创建多个具有相同配置或属性的用户代理,请编写以下代码 -
const UserAgent = require('user-agents');
const userAgent = new UserAgent({
platform: 'Win64',
deviceCategory: 'desktop'
});
const userAgents = Array(50).fill()
.map(() => userAgent());
在这里,我们创建了一个用户代理实例,其属性为platform和deviceCategory 。我们将其限制为使用Windows 64平台并仅在桌面上运行。然后,我们创建了一个由 50 个以上具有相同配置的用户代理组成的数组。
我们还可以将过滤器应用于我们的应用程序,返回的用户代理将与应用的过滤器匹配。因此,要应用过滤器,请编写以下代码 -
const UserAgent = require('user-agents');
const userAgent = new UserAgent(/Chrome/);
console.log(userAgent.toString());
在这里,我们将过滤器作为/Chrome/传递。返回的用户代理将包含Chrome子字符串。我们还可以将过滤器和一组配置组合起来,这些配置将应用于返回的用户代理。
例如 -
const UserAgent = require('user-agents');
const userAgent = new UserAgent([
/Chrome/,
{
deviceCategory: 'tablet',
platform: 'Win64'
}
]);
在这里,我们将过滤器与返回的用户代理上的一系列配置一起应用为Chrome 。
结论:在本文中,我们了解了 JavaScript 的User-Agent模块,并研究了如何在 JavaScript 文件中设置该模块。我们也看到了这个模块的一些实现。