Learn how to use Node Unblocker with MoMoProxy for seamless web scraping, bypassing restrictions, and accessing geo-blocked content with high-speed proxies.
Web scraping and automation often face significant challenges, especially when websites block or restrict access based on IP address, location, or behavior. A highly effective solution to these issues is using proxies, and Node Unblocker is an open-source Node.js library that simplifies the process of bypassing such restrictions. Whether you're scraping data, automating tasks, or accessing region-locked content, Node Unblocker can be an essential tool to ensure seamless, uninterrupted access.

This article provides a comprehensive guide on Node Unblocker, covering its functionality, setup, deployment, limitations, and the best alternatives for complex scraping needs.
Node Unblocker is an open-source Node.js library designed to create a proxy service that bypasses location-based and IP-based restrictions on websites. By routing web requests through a proxy server, Node Unblocker helps you access blocked or restricted content. The library integrates seamlessly with Express, a web framework that simplifies handling HTTP requests.
Related Article: Setup Node Unblocker
Before getting started, ensure you have Node.js and npm installed on your machine. You'll also need Express for handling HTTP requests.
Start by creating a new Node.js project:
1npm init esnext
2
3Then, install the required dependencies:
1npm install express unblocker
2
3Now, let's create a simple proxy service using Node Unblocker within an Express app.
index.js:
1import express from 'express';
2import Unblocker from 'unblocker';
3
4const app = express();
5// Create a new instance of Unblocker
6const unblocker = new Unblocker({});
7
8// Register Unblocker as middleware
9app.use(unblocker);
10
11const PORT = process.env.PORT || 5005;
12
13// Start the server
14app.listen(PORT, () => console.log(`Listening on port ${PORT}`))
15// Allow Unblocker to handle WebSocket upgrades
16.on('upgrade', unblocker.onUpgrade);
17
18This setup registers Node Unblocker as middleware in your Express app, routing all requests through the proxy server. The proxy service will be accessible through /proxy/.
To test the proxy locally, run the app with:
1node index.js
2
3Once the server is running, open your browser and test the proxy by navigating to:
1http://localhost:5005/proxy/https://ident.me/
2
3This should show you the public IP address of the server, confirming that the proxy is working as expected.
Once you've tested your proxy locally, the next step is deploying it to a cloud platform like Heroku.
Sign up for a Heroku account (the basic plan starts at $5/month). Install the Heroku CLI and log in:
1heroku login
2
3Ensure that your package.json file includes the necessary configurations:
1{
2 "name": "express-unblocker",
3 "version": "1.0.0",
4 "type": "module",
5 "main": "index.js",
6 "scripts": {
7 "start": "node index.js"
8 },
9 "dependencies": {
10 "express": "^4.18.2",
11 "unblocker": "^2.3.0"
12 },
13 "engines": {
14 "node": "18.x"
15 }
16}
17
18Initialize a Git repository, then deploy your app to Heroku:
1git init
2git add .
3git commit -m "Initial commit"
4heroku create <app-name>
5git push heroku master
6
7Once the deployment is complete, you’ll receive a Heroku URL. You can then access the proxy service by appending the target URL to the domain:
1https://<app-name>.herokuapp.com/proxy/https://ident.me/
2
3For efficient scraping, consider deploying multiple instances of your proxy service across different servers. This creates a proxy pool, allowing you to distribute requests across various proxies and minimize the chances of getting blocked by websites.
Here's an example of how you can implement scraping with Axios, making requests through randomly selected proxies:
1import axios from 'axios';
2
3const proxies = [
4 'http://3.237.11.18:5005',
5 'http://3.237.11.19:5005',
6 'http://3.237.11.20:5005',
7];
8
9const proxy = proxies[Math.floor(Math.random() * proxies.length)],
10 url = 'https://ident.me';
11
12axios.get(`${proxy}/proxy/${url}`)
13 .then(({ data }) => {
14 console.log({ data });
15 }).catch(err => console.error(err));
16
17This script randomly selects a proxy from the pool and routes requests through it, enabling you to efficiently manage proxy usage during scraping tasks.
Now that the proxy is set up, let’s integrate it with Puppeteer, a popular web scraping library for Node.js.
1npm install puppeteer
2
3Create a file called scrape.js and add the following code to scrape data via the deployed proxy:
1const puppeteer = require("puppeteer");
2
3const scrapeData = async () => {
4 const browser = await puppeteer.launch({ headless: true });
5 const page = await browser.newPage();
6
7 // Go through the proxy
8 await page.goto("<DEPLOYED-APP-URL>/proxy/https://example.com");
9
10 // Extract the data you need
11 const data = await page.evaluate(() => {
12 let content = [];
13 document.querySelectorAll(".desired-element").forEach(item => {
14 content.push(item.innerText);
15 });
16 return content;
17 });
18
19 console.log(data);
20 await browser.close();
21};
22
23scrapeData();
24
25Node Unblocker gives you plenty of options to tailor your proxy to suit specific needs:
While Node Unblocker is a powerful tool, it has some limitations:
For large-scale scraping tasks or situations that involve advanced anti-bot measures, consider using a dedicated web scraping API like ZenRows. These services offer enhanced proxy management, CAPTCHA solving, and JavaScript rendering, reducing maintenance overhead and increasing success rates.
Some other alternatives include:
Node Unblocker is a robust tool for bypassing web restrictions, making it an excellent choice for simple scraping tasks. Its integration with Express and ease of use make it accessible for developers looking to build a basic proxy service.
However, for large-scale scraping projects or scenarios involving complex anti-bot measures, using more specialized tools like ZenRows or ScraperAPI may be more efficient. These platforms offer enhanced features like automatic proxy rotation, CAPTCHA solving, and JavaScript rendering, ensuring a smoother and more reliable scraping experience.
By following this guide, you can set up and deploy Node Unblocker to bypass restrictions and improve your scraping efficiency, while also considering alternatives when needed for more advanced use cases.