想象一下这样的场景:你工作无聊,无事可做。你决定去 Reddit 上看几分钟,但是哦,不,你的网络管理员封锁了这个网站!这样的限制会让人非常恼火。幸好,Node Unblocker 是克服任何限制的简单解决方案。
如何使用 Node Unblocker?
要开始使用 Node Unblocker,您需要先进行一些设置。最初的准备工作可能需要几个步骤,但该工具随后会变得易于使用。请继续阅读,了解如何启动和运行一切。
安装 Node.js
Node Unblocker 由 JavaScript 编写,基于 Node.js 运行环境。要开始使用 Node.js,请访问官方网站并下载最新版本。然后,按照安装向导进行设置。
创建新的 Node.js 项目
安装 Node.js 后,打开终端工具,使用 cd 命令导航到要创建新项目的目录。
cd path/to/your/project
运行以下命令初始化项目:
npm init -y
这将创建一个新的 package.json 文件,您可以在其中定义项目参数。
安装所需软件包
您需要安装两个软件包:Express.js 和 Node Unblocker 本身。Express.js 是 Node.js 的网络应用程序框架,旨在简化网络应用程序和 API 的构建过程。只需一条命令即可安装这两个软件包:
npm i express unblocker
简短安装后,您将在项目目录下看到一个新的 node_modules 文件夹,其中包含 express 和 unblocker 模块。
创建 Node Unblocker 脚本
在项目根目录下新建一个 index.js 文件并打开。
导入所需的库,开始编写脚本:
var express = require('express')
var Unblocker = require('unblocker');
然后,创建新的 express 和 unblocker 实例。您还可以为新的解锁器实例定义要在 URL 中使用的前缀。你可以给它起任何你想要的名字,但在这个例子中,我们将坚持使用老式的"/proxy/"。
var app = express();
var unblocker = new Unblocker({prefix: '/proxy/'});
下一行告诉 Express 应用程序(app)使用中间件函数 unblocker 来处理传入的 HTTP 请求:
app.use(unblocker);
定义一个路由,用于处理对根 URL(‘/’)的 HTTP GET 请求。发送 GET 请求时,Express 将执行作为第二个参数提供的回调函数。在回调函数中,req 代表 HTTP 请求对象,res 代表 HTTP 响应对象。该函数通常包含处理传入请求和发送适当响应的逻辑,但我们暂且将其留空(默认)。
app.get('/', function(req, res) {
});
最后,启动 Express 应用程序,告诉它监听 8080 端口(或您选择的其他端口)上的 HTTP 请求。我们还为服务器实例附加了一个事件监听器,以监视的升级。
app.listen(process.env.PORT || 8080).on('upgrade', unblocker.onUpgrade);
下面是完整的脚本:
// Import required libraries
var express = require('express')
var Unblocker = require('unblocker');
// Create new express and unblocker instances. Set a prefix to use in the URL
var app = express();
var unblocker = new Unblocker({prefix: '/proxy/'});
// Tell the Express application to use the Unblocker middleware to handle HTTP requests
app.use(unblocker);
// Define a route to handle HTTP GET requests
app.get('/', function(req, res) {
});
// Start the express application on port 8080
app.listen(process.env.PORT || 8080).on('upgrade', unblocker.onUpgrade);
运行节点解锁程序
现在脚本已经准备就绪,让我们启动并运行它。要运行脚本,只需在终端中执行以下命令:
node index.js
本地将启动一个新的 Node Unblocker 实例。打开您选择的任何浏览器,并按此格式输入您要访问的 URL:
localhost:[port]/[prefix]/https://example.com/
以我们的例子为例,让我们访问 Smartdaili 网站。在这种情况下,您的 URL 将如下所示:
http://localhost:8080/proxy/https://smartproxy.com/
就这样,您使用 Node Unblocker 访问了一个网站。
稍作延迟后,您的项目将部署到网络上!复制生成的 URL 进行测试。就像在本地环境中使用一样,你需要附加 /proxy/ 前缀和你要访问的 URL。简单来说,语法如下
[URL]/[prefix]/[target website]
例如,让我们再次访问 Smartproxy 网站:
https://unblocker-94zv.onrender.com/proxy/https://smartproxy.com/
如果网站加载正确,您就成功地将项目部署为网络服务。
使用 Puppeteer 搜刮
既然项目已经存在于网络上,我们就可以使用 URL 库自动访问网站、抓取所需数据,并以干净、可读的格式返回。
我们将在这个项目中使用 Puppeteer。首先需要在终端工具中运行以下命令进行安装:
npm i puppeteer
然后,你就可以编写一个简单的脚本来访问网站并抓取所需的数据。例如,让我们从ScrapeMe 这个示例网站中抓取信息。我们的目标是获取产品列表中第一件商品的名称。您的脚本将如下所示
const puppeteer = require('puppeteer');
(async () => {
// Launch a headless browser
const browser = await puppeteer.launch();
// Open a new page
const page = await browser.newPage();
// Navigate to the desired URL
await page.goto('https://unblocker-94zv.onrender.com/proxy/https://scrapeme.live/shop/');
// Get the first item with class "woocommerce-loop-product__title"
const firstItemTitle = await page.evaluate(() => {
const firstItem = document.querySelector('.woocommerce-loop-product__title');
return firstItem ? firstItem.textContent : null;
});
// Output the first item title
console.log(firstItemTitle);
// Close the browser
await browser.close();
})();
脚本首先会启动一个无头浏览器应用程序,并导航到目标页面。由于所有商店项目共享相同的 woocommerce-loop-product__title 类,因此它会识别第一个项目并打印该元素的文本内容。
您可以修改代码,提取不同的信息或针对不同的网站。如果你以前使用过 Puppeteer 或其他刮擦工具,你会发现过程完全相同,只是网站总是通过你部署的代理网络服务来访问。
供应链和物流监控
Node Unblocker 可帮助访问供应链和物流数据平台。通过它,您可以更高效地跟踪货运、监控运输路线并分析供应链绩效,从而提高能见度、效率和风险管理。
结论
Node Unblocker 以其令人印象深刻的速度、可靠性和简单明了的设置过程,为绕过网络限制提供了出色的解决方案。有了 Node Unblocker,用户无需进行复杂的配置,就能快速、可靠地访问受限制的网站,这使它成为寻求无忧浏览体验的用户的最佳选择。要完全匿名、安全地浏览网页,请不要忘记查看我们的代理解决方案。您的在线活动将不被服务提供商和您访问的网站发现,确保完全的隐私和安全。