在NodeJS中使用Axios配置代理可以让你在网络上获得更多的自由,并解除一些限制。现在就来学习如何配置代理并通过替代IP地址访问网络。

Axios是一个用于发送网络请求的JavaScript库,广泛用于开发网络爬虫、抓取器和其他用于特定重复任务的机器人。它支持的功能之一是能够通过代理配置和路由请求。这将使你能够突破请求限制,解锁网站,甚至访问针对特定位置用户的地理定位内容。

在本指南中,我将向你展示如何在Axios和NodeJS中配置代理。虽然对于每种代理类型,步骤几乎相同,但身份验证的要求可能会导致你设置代理的方式略有不同。


在Axios中设置代理的要求

对于本指南,你需要安装 NodeJS 和 Axios,以及代理才能继续本教程。我希望你已经安装了 NodeJS 和 Axios。至于代理,有多个提供商。对于本指南,你可以使用免费代理,又称开放代理。一些免费代理列表提供商包括 ProxyScrape 和 SPYS.ONE。

然而,对于实际项目来说,它们并不好。你需要选择付费代理。对于网页抓取和爬取,我建议你使用轮换住宅代理SmartproxyBright Data和是这方面的优秀提供商。如果你需要静态代理进行帐户管理,可以从Proxy-Seller获取静态住宅代理。


如何配置无用户名/密码验证的代理

最简单的代理形式是不需要用户名和密码进行身份验证的代理。这些代理可以是免费代理(通常是开放代理),也可以是付费代理(使用其他形式的身份验证,例如 IP 身份验证)。

const axios = require('axios');

axios.get('https://httpbin.io/ip', {proxy: { host: '128.200.37.106', port: 80, protocol: 'http', },

})

.then((response) => {

console.log(response.data);

})

.catch((error) => {

console.error('Error:', error);

});

如上所示,代码非常简单。它所做的就是向 HTTPBin 的 IP 查找 API 发送 Web 请求,然后在控制台中打印 IP。代理定义为具有主机/代理地址、端口和协议的 Javascript 对象。上面的请求是 GET 请求,你可以随时将其切换到适合你的请求的请求方法。这里代理最重要的设置是代理对象。


如何使用用户名和密码验证配置代理

虽然上述方法适用于 IP 认证代理和免费代理,但对于需要用户名和密码认证的代理则不行。对于用户名和密码认证的代理,你需要添加一个定义了用户名和密码的 auth 对象。下面是如何使用上面已有的代码来做同样的事情。

const axios = require('axios');

axios.get('https://httpbin.io/ip', {proxy: { host: '128.200.37.106', port: 80, protocol: 'http',

auth: {username: 'username', password: 'password'}},

})

.then((response) => {

console.log(response.data);

})

.catch((error) => {

console.error('Error:', error);

});

如何在 Axios 中旋转代理

上述示例仅使用一个代理。这意味着如果你开始以高速率抓取数据,你将受到速率限制和阻止。你需要获取一组 IP 地址,并创建自定义逻辑,在每次请求后或在特定时间段内引入随机性因素来为你轮换 IP。这不仅会花费你更多钱,因为你需要购买多个代理,而且也是一种高效的方法。

处理此问题的最佳方法是使用轮换住宅代理网络。使用轮换代理,你得到的只是一个代理端点。代理网络会根据你的设置自动切换和轮换分配给该网络的 IP,可以在指定时间之后或每次请求之后进行。Bright DataSmartproxy是一些最好的提供商,池中分别有超过 7200 万和 5500 万个 IP。

使用这两种代理的好处是它们支持地理定位,你可以选择来自 190 多个国家/地区的 IP,并支持城市级定位。它们也比购买一堆代理便宜。但是,定价基于带宽。


结    论

作为本指南的总结,你需要知道,虽然代理赋予了Axios和NodeJS超越请求限制、解锁网站以及访问其他地理位置用户内容的能力,但你选择的代理类型非常重要。我建议使用轮换住宅代理,因为它们最适合这种需求。通过上述指南,你应该能够在Axios和NodeJS中配置和使用代理。

这篇文章有用吗?

点击星号为它评分!

平均评分 / 5. 投票数:

到目前为止还没有投票!成为第一位评论此文章。

No more articles