CINXE.COM
<!doctype html> <html lang="en" dir="ltr" class="plugin-pages plugin-id-default" data-has-hydrated="false"> <head> <meta charset="UTF-8"> <meta name="generator" content="Docusaurus v3.0.0-rc.1"> <title data-rh="true">The NodeJs Web Scraping Playbook | ScrapeOps</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://scrapeops.io/nodejs-web-scraping-playbook/"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><meta data-rh="true" name="robots" content="max-image-preview:large"><meta data-rh="true" property="og:title" content="The NodeJs Web Scraping Playbook | ScrapeOps"><meta data-rh="true" name="description" content="Everything you need to know to become a Node.js Web Scraping Pro! Including Web Scraping guides, extensions, scrapers and much more using Node.js."><meta data-rh="true" property="og:description" content="Everything you need to know to become a Node.js Web Scraping Pro! Including Web Scraping guides, extensions, scrapers and much more using Node.js."><link data-rh="true" rel="icon" href="/img/favicon.svg"><link data-rh="true" rel="canonical" href="https://scrapeops.io/nodejs-web-scraping-playbook/"><link data-rh="true" rel="alternate" href="https://scrapeops.io/nodejs-web-scraping-playbook/" hreflang="en"><link data-rh="true" rel="alternate" href="https://scrapeops.io/nodejs-web-scraping-playbook/" hreflang="x-default"><link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="ScrapeOps RSS Feed"> <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="ScrapeOps Atom Feed"> <link rel="preconnect" href="https://www.google-analytics.com"> <link rel="preconnect" href="https://www.googletagmanager.com"> <script async src="https://www.googletagmanager.com/gtag/js?id=G-QJSW9S9YH4"></script> <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-QJSW9S9YH4",{anonymize_ip:!0})</script> <script src="/get-refferer.js"></script> <script src="https://cdn.firstpromoter.com/fpr.js" async></script><link rel="stylesheet" href="/assets/css/styles.0a6705c8.css"> <script src="/assets/js/runtime~main.8a89d22b.js" defer="defer"></script> <script src="/assets/js/main.2a878338.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const a=new URLSearchParams(window.location.search).entries();for(var[t,e]of a)if(t.startsWith("docusaurus-data-")){var n=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(n,e)}}catch(t){}}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><div class="announcementBar_s0pr" style="background-color:#90c53f;color:#fff" role="banner"><div class="announcementBarContent_dpRF">Need a proxy solution? Try ScrapeOps and get <a target="_self" href="https://scrapeops.io/app/register/proxy/">1,000 free requests here</a>, or compare all proxy providers <a target="_self" href="https://scrapeops.io/proxy-providers/comparison/">here</a>!</div></div><nav class="navbar navbar--fixed-top navbar--playbook"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/scrapeops-logo.svg" alt="ScrapeOps Logo" class="themedComponent_mlkZ themedComponent--light_NVdE" height="24px" width="18px"><img src="/img/scrapeops-logo.svg" alt="ScrapeOps Logo" class="themedComponent_mlkZ themedComponent--dark_xIcU" height="24px" width="18px"></div><b class="navbar__title text--truncate">ScrapeOps</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Solutions</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/proxy-aggregator/">Proxy Aggregator</a></li><li><a class="dropdown__link" href="/monitoring-scheduling/">Monitoring & Scheduler</a></li></ul></div><a class="navbar__item navbar__link" href="/docs/intro/">Docs</a><a href="https://scrapeops.io/proxy-providers/comparison/" target="_self" rel="noopener noreferrer" class="navbar__item navbar__link">Proxy Comparison<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Guides</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/web-scraping-playbook/">Web Scraping Playbook</a></li><li><a class="dropdown__link" href="/python-web-scraping-playbook/">Python Web Scraping Playbook</a></li><li><a aria-current="page" class="dropdown__link dropdown__link--active" href="/nodejs-web-scraping-playbook/">NodeJs Web Scraping Playbook</a></li><li><a class="dropdown__link" href="/python-scrapy-playbook/">Python Scrapy Playbook</a></li><li><a class="dropdown__link" href="/selenium-web-scraping-playbook/">Selenium Web Scraping Playbook</a></li><li><a class="dropdown__link" href="/puppeteer-web-scraping-playbook/">Puppeteer Web Scraping Playbook</a></li><li><a class="dropdown__link" href="/playwright-web-scraping-playbook/">Playwright Web Scraping Playbook</a></li></ul></div><a href="https://scrapeops.io/app/login/" target="_self" rel="noopener noreferrer" class="navbar__item navbar__link">Login<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><a href="https://scrapeops.io/app/register/main/" target="_self" rel="noopener noreferrer" class="navbar__item navbar__link">Signup<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper"><div class="playbookSection_HHpf"><header class="hero hero--primary heroBanner_BAXk"><div class="container" id="heroSection_lFAP"><img src="/img/sdk-icons/nodejs-logo.png" alt="NodeJs Web Scraping Playbook - NodeJs Logo"><h1><span id="the_t84H">The</span> <br><span id="library_WYf9">NodeJs</span><br><span id="playbook_rkuF">Web Scraping</span><br><span id="playbook_rkuF">Playbook</span></h1><p id="heroDesc_txyN">Everything you need to know to become a Node.js Web Scraping Pro!</p><div class="row" id="pageToggleRow_RTf_"><div id="toggle_RnxZ"><a href="/nodejs-web-scraping-playbook/">Guides</a></div></div><div class="row" id="communityRow_w9Mj"><div id="text_T6Mj">Web Scraping Community:</div><div id="icon_PPPy"><a href="https://www.reddit.com/r/webscraping/" target="_blank"><img src="/img/social/reddit.png" alt="Web Scraping Reddit Community"></a></div><div id="icon_PPPy"><a href="https://discord.gg/e7T6HGjx" target="_blank"><img src="/img/social/discord.png" alt="Web Scraping Discord Community"></a></div></div></div></header><div class="container headerSection_i4p_"><div class="row headerRow_bFt_"><h2>Web Scraping For Beginners Series</h2></div></div><div class="container articleSection_THW5"><div class="row articleRow_tQhl"><a class="text-brand3" href="/nodejs-web-scraping-playbook/nodejs-axios-cheeriojs-beginners-guide-part-1/"><h3>Part 1: How To Build Your First Scraper</h3></a><p>In Part 1 of the series, we go over the basics of how to build a scraper using Node.js Axios & CheerioJS.</p></div></div><div class="container articleSection_THW5"><div class="row articleRow_tQhl"><a class="text-brand3" href="/nodejs-web-scraping-playbook/nodejs-axios-cheeriojs-beginners-guide-part-2/"><h3>Part 2: Cleaning Dirty Data & Dealing With Edge Cases</h3></a><p>In Part 2 of the series, we're going to show you how to make your scraper more robust and reliable.</p></div></div><div class="container articleSection_THW5"><div class="row articleRow_tQhl"><a class="text-brand3" href="/nodejs-web-scraping-playbook/nodejs-axios-cheeriojs-beginners-guide-part-3/"><h3>Part 3: Storing Data in AWS S3, MySQL & Postgres DBs</h3></a><p>In Part 3 of the series, we'll explore several different ways we can store the data and talk about their pros, and cons and in which situations you would use them.</p></div></div><div class="container articleSection_THW5"><div class="row articleRow_tQhl"><a class="text-brand3" href="/nodejs-web-scraping-playbook/nodejs-axios-cheeriojs-beginners-guide-part-4/"><h3>Part 4: Retries and Concurrency</h3></a><p> In Part 4 of the series, we'll enhance our scraper's reliability and scalability by handling failed requests and utilizing concurrency.</p></div></div><div class="container articleSection_THW5"><div class="row articleRow_tQhl"><a class="text-brand3" href="/nodejs-web-scraping-playbook/nodejs-axios-cheeriojs-beginners-guide-part-5/"><h3>Part 5: Using Fake User-Agents and Browser Headers</h3></a><p>In Part 5 of the series, we'll learn how to create a production-ready scraper by simulating real users through user-agent and browser header manipulation.</p></div></div><div class="container"><div class="row"><div class="sectionDivider_sU1X"></div></div></div><div class="container headerSection_i4p_"><div class="row headerRow_bFt_"><h2>NodeJS Introduction</h2></div></div><div class="container articleSection_THW5"><div class="row articleRow_tQhl"><a class="text-brand3" href="/nodejs-web-scraping-playbook/nodejs-minimize-scraping-costs/"><h3>How To Minimize Web Scraping Costs With Node.js</h3></a><p>In this guide, we will dive into various approaches for minimizing web scraping costs with Node.js.</p></div></div><div class="container"><div class="row"><div class="sectionDivider_sU1X"></div></div></div><div class="container headerSection_i4p_"><div class="row headerRow_bFt_"><h2>Proxies, User-Agents & Avoiding Bans</h2></div></div><div class="container articleSection_THW5"><div class="row articleRow_tQhl"><a class="text-brand3" href="/nodejs-web-scraping-playbook/nodejs-fake-user-agents/"><h3>NodeJs Fake User-Agents - How to Manage User Agents When Scraping</h3></a><p>In this guide we show you how to create and manage fake user agents when scraping in NodeJs so you don't get blocked.</p></div></div><div class="container articleSection_THW5"><div class="row articleRow_tQhl"><a class="text-brand3" href="/nodejs-web-scraping-playbook/node-unblocker-proxy-server/"><h3>Node Unblocker - Build Your Own Proxy Server</h3></a><p>Node Unblocker is an open source library that allows you to easily build and deploy your own proxy server as a VPN or for web scraping.</p></div></div><div class="container articleSection_THW5"><div class="row articleRow_tQhl"><a class="text-brand3" href="/nodejs-web-scraping-playbook/nodejs-how-to-solve-captchas/"><h3>How To Solve CAPTCHAs with NodeJS</h3></a><p>In this guide, we will explore various strategies and techniques for efficiently bypassing CAPTCHA challenges with NodeJS.</p></div></div><div class="container"><div class="row"><div class="sectionDivider_sU1X"></div></div></div><div class="container headerSection_i4p_"><div class="row headerRow_bFt_"><h2>Navigation & Logging In</h2></div></div><div class="container articleSection_THW5"><div class="row articleRow_tQhl"><a class="text-brand3" href="/nodejs-web-scraping-playbook/nodejs-scroll-page/"><h3>How to Scroll a Page with NodeJS</h3></a><p>In this article, we'll walk through the scrolling techniques using Puppeteer and Playwright.</p></div></div><div class="container articleSection_THW5"><div class="row articleRow_tQhl"><a class="text-brand3" href="/nodejs-web-scraping-playbook/nodejs-how-to-submit-forms/"><h3>How To Submit a Form With NodeJS</h3></a><p>In this guide, we will dive into various approaches for submitting forms using NodeJS and provide detailed steps and examples for each method.</p></div></div><div class="container"><div class="row"><div class="sectionDivider_sU1X"></div></div></div><div class="container headerSection_i4p_"><div class="row headerRow_bFt_"><h2>NodeJS Headless Browsers</h2></div></div><div class="container articleSection_THW5"><div class="row articleRow_tQhl"><a class="text-brand3" href="/nodejs-web-scraping-playbook/best-nodejs-headless-browsers/"><h3>The Best Node.js Headless Browsers for Web Scraping</h3></a><p>In this guide, we will cover the top Node.js headless browsers used for web scraping today, explaining their key features and providing code examples.</p></div></div><div class="container articleSection_THW5"><div class="row articleRow_tQhl"><a class="text-brand3" href="/puppeteer-web-scraping-playbook/nodejs-puppeteer-guide/"><h3>The NodeJS Puppeteer Guide</h3></a><p>In this guide, we show you how to use Puppeteer, a Node.js library that offers a high-level, user-friendly API for automating tasks and interacting with dynamic web pages.</p></div></div><div class="container articleSection_THW5"><div class="row articleRow_tQhl"><a class="text-brand3" href="/playwright-web-scraping-playbook/nodejs-playwright-guide/"><h3>The NodeJS Playwright Guide</h3></a><p>In this guide, we鈥檒l introduce you to the fundamental functionality of Node.js Playwright and how to use it in your own projects.</p></div></div><div class="container"><div class="row"><div class="sectionDivider_sU1X"></div></div></div><div class="container headerSection_i4p_"><div class="row headerRow_bFt_"><h2>HTML Parsing Libraries</h2></div></div><div class="container articleSection_THW5"><div class="row articleRow_tQhl"><a class="text-brand3" href="/nodejs-web-scraping-playbook/best-nodejs-html-parsing-libraries/"><h3>The 5 Best NodeJs HTML Parsing Libraries Compared</h3></a><p>We compare the 5 best NodeJs HTML parsing libraries available in 2023 - Cheerio, JSDOM, Parse5, htmlparser2, and xml2js.</p></div></div><div class="container articleSection_THW5"><div class="row articleRow_tQhl"><a class="text-brand3" href="/nodejs-web-scraping-playbook/nodejs-cheerio-guide/"><h3>CheerioJS Guide - Scraping HTML Pages With NodeJs</h3></a><p>In this guide, we walk through how to extract valuable data from HTML pages effortlessly, leveraging the robust capabilities of Cheerio for efficient data parsing and manipulation in NodeJS.</p></div></div><div class="container"><div class="row"><div class="sectionDivider_sU1X"></div></div></div><div class="container headerSection_i4p_"><div class="row headerRow_bFt_"><h2>Request-Promise</h2></div></div><div class="container articleSection_THW5"><div class="row articleRow_tQhl"><a class="text-brand3" href="/nodejs-web-scraping-playbook/node-request-promise-proxy-rotation/"><h3>NodeJs Request-Promise: How to Use & Rotate Proxies</h3></a><p>In this guide, we walk through how to use proxies with Nodejs Request-Promise. Including how to rotate proxies in a list, use proxy gateways, and proxy APIs with our Nodejs Request-Promise scraper.</p></div></div><div class="container articleSection_THW5"><div class="row articleRow_tQhl"><a class="text-brand3" href="/nodejs-web-scraping-playbook/node-request-promise-post-requests/"><h3>NodeJs Request Promise: How to Send POST Requests</h3></a><p>In this guide, we walk through how to send POST requests with NodeJs Request Promise. Including how to POST form data and JSON data.</p></div></div><div class="container articleSection_THW5"><div class="row articleRow_tQhl"><a class="text-brand3" href="/nodejs-web-scraping-playbook/node-request-promise-fake-user-agents/"><h3>NodeJs Request Promise: Setting Fake User-Agents</h3></a><p>In this guide, we walk through how to use fake user-agents with NodeJs Request Promise to avoid your scrapers from getting blocked.</p></div></div><div class="container articleSection_THW5"><div class="row articleRow_tQhl"><a class="text-brand3" href="/nodejs-web-scraping-playbook/node-request-promise-retry-failed-requests/"><h3>NodeJs Request-Promise: Retry Failed Requests</h3></a><p>In this guide, we walk through how to configure NodeJs Request-Promise to retry failed requests so you can build a more reliable system.</p></div></div><div class="container articleSection_THW5"><div class="row articleRow_tQhl"><a class="text-brand3" href="/nodejs-web-scraping-playbook/node-request-promise-concurrent-threads/"><h3>NodeJs Request-Promise: Make Concurent Requests</h3></a><p>In this guide, we walk through how to configure NodeJs Request-Promise to make concurrent requests so that you can increase the speed of your scrapers.</p></div></div><div class="container"><div class="row"><div class="sectionDivider_sU1X"></div></div></div><div class="container headerSection_i4p_"><div class="row headerRow_bFt_"><h2>Axios</h2></div></div><div class="container articleSection_THW5"><div class="row articleRow_tQhl"><a class="text-brand3" href="/nodejs-web-scraping-playbook/node-axios-fake-user-agents/"><h3>Axios: Setting Fake User-Agents</h3></a><p>How to use fake user-agents with NodeJs Axios to avoid your scrapers from getting blocked.</p></div></div><div class="container articleSection_THW5"><div class="row articleRow_tQhl"><a class="text-brand3" href="/nodejs-web-scraping-playbook/node-axios-post-requests/"><h3>Axios: How to Send POST Requests</h3></a><p>In this guide, we walk through how to send POST requests with NodeJs Axios. Including how to POST form data and JSON data.</p></div></div><div class="container articleSection_THW5"><div class="row articleRow_tQhl"><a class="text-brand3" href="/nodejs-web-scraping-playbook/node-axios-retry-failed-requests/"><h3>Axios: Retry Failed Requests</h3></a><p>In this guide, we walk through how to configure NodeJs Axios to retry failed requests so you can build a more reliable system.</p></div></div><div class="container articleSection_THW5"><div class="row articleRow_tQhl"><a class="text-brand3" href="/nodejs-web-scraping-playbook/node-axios-concurrent-threads/"><h3>Axios: Make Concurrent Requests</h3></a><p>In this guide, we walk through how to configure NodeJs Axios to make concurrent requests so that you can increase the speed of your scrapers.</p></div></div><div class="container"><div class="row"><div class="sectionDivider_sU1X"></div></div></div><div class="container headerSection_i4p_"><div class="row headerRow_bFt_"><h2>Node-Fetch</h2></div></div><div class="container articleSection_THW5"><div class="row articleRow_tQhl"><a class="text-brand3" href="/nodejs-web-scraping-playbook/node-fetch-proxy-rotation/"><h3>Node-Fetch: How to Use & Rotate Proxies</h3></a><p>In this guide, we walk through how to use proxies with Node-Fetch. Including how to rotate proxies in a list, use proxy gateways, and proxy APIs with our Node-Fetch scraper.</p></div></div><div class="container articleSection_THW5"><div class="row articleRow_tQhl"><a class="text-brand3" href="/nodejs-web-scraping-playbook/node-fetch-fake-user-agents/"><h3>Node-Fetch: Setting Fake User-Agents</h3></a><p>In this guide, we walk through how to use fake user-agents with Node-Fetch Library to avoid your scrapers from getting blocked.</p></div></div><div class="container articleSection_THW5"><div class="row articleRow_tQhl"><a class="text-brand3" href="/nodejs-web-scraping-playbook/node-fetch-post-requests/"><h3>Node-Fetch: How to Send POST Requests</h3></a><p>In this guide, we walk through how to send POST requests with Node-Fetch Library. Including how to POST form data and JSON data.</p></div></div><div class="container articleSection_THW5"><div class="row articleRow_tQhl"><a class="text-brand3" href="/nodejs-web-scraping-playbook/node-fetch-concurrent-threads/"><h3>Node-Fetch: Make Concurrent Requests</h3></a><p>In this guide, we walk through how to configure Node-Fetch Library to make concurrent requests so that you can increase the speed of your scrapers.</p></div></div><div class="container articleSection_THW5"><div class="row articleRow_tQhl"><a class="text-brand3" href="/nodejs-web-scraping-playbook/node-fetch-retry-failed-requests/"><h3>Node-Fetch: Retry Failed Requests</h3></a><p>In this guide, we walk through how to configure Node-Fetch library to retry failed requests so you can build a more reliable system.</p></div></div><div class="container"><div class="row"><div class="sectionDivider_sU1X"></div></div></div><div class="container headerSection_i4p_"><div class="row headerRow_bFt_"><h2>NodeJs Got</h2></div></div><div class="container articleSection_THW5"><div class="row articleRow_tQhl"><a class="text-brand3" href="/nodejs-web-scraping-playbook/nodejs-got-proxy-rotation/"><h3>NodeJs Got: How to Use & Rotate Proxies</h3></a><p>In this guide, we walk through how to use proxies with NodeJS Got. Including how to rotate proxies in a list, use proxy gateways, and proxy APIs with our NodeJS Got scraper.</p></div></div><div class="container articleSection_THW5"><div class="row articleRow_tQhl"><a class="text-brand3" href="/nodejs-web-scraping-playbook/nodejs-got-fake-user-agents/"><h3>NodeJs Got: Setting Fake User-Agents</h3></a><p>In this guide, we walk through how to use fake user-agents with NodeJs Got Library to avoid your scrapers from getting blocked.</p></div></div><div class="container articleSection_THW5"><div class="row articleRow_tQhl"><a class="text-brand3" href="/nodejs-web-scraping-playbook/nodejs-got-post-requests/"><h3>NodeJs Got: How to Send POST Requests</h3></a><p>In this guide, we walk through how to send POST requests with NodeJS Got Library. Including how to POST form data and JSON data.</p></div></div><div class="container articleSection_THW5"><div class="row articleRow_tQhl"><a class="text-brand3" href="/nodejs-web-scraping-playbook/nodejs-got-concurrent-threads/"><h3>NodeJs Got: Make Concurrent Requests</h3></a><p>In this guide, we walk through how to configure NodeJs Got Library to make concurrent requests so that you can increase the speed of your scrapers.</p></div></div><div class="container articleSection_THW5"><div class="row articleRow_tQhl"><a class="text-brand3" href="/nodejs-web-scraping-playbook/nodejs-got-retry-failed-requests/"><h3>NodeJs Got: Retry Failed Requests</h3></a><p>In this guide, we walk through how to configure NodeJs Got library to retry failed requests so you can build a more reliable system.</p></div></div><div class="container"><div class="row"><div class="sectionDivider_sU1X"></div></div></div><div class="container headerSection_i4p_"><div class="row headerRow_bFt_"><h2>NodeJs SuperAgent</h2></div></div><div class="container articleSection_THW5"><div class="row articleRow_tQhl"><a class="text-brand3" href="/nodejs-web-scraping-playbook/nodejs-superagent-proxy-rotation/"><h3>SuperAgent: How to Use & Rotate Proxies</h3></a><p>In this guide, we walk through how to use proxies with NodeJS SuperAgent. Including how to rotate proxies in a list, use proxy gateways, and proxy APIs with our SuperAgent scraper.</p></div></div><div class="container articleSection_THW5"><div class="row articleRow_tQhl"><a class="text-brand3" href="/nodejs-web-scraping-playbook/nodejs-superagent-fake-user-agents/"><h3>SuperAgent: Setting Fake User-Agents</h3></a><p>In this guide, we walk through how to use fake user-agents with NodeJs SuperAgent Library to avoid your scrapers from getting blocked.</p></div></div><div class="container articleSection_THW5"><div class="row articleRow_tQhl"><a class="text-brand3" href="/nodejs-web-scraping-playbook/nodejs-superagent-post-requests/"><h3>SuperAgent: How to Send POST Requests</h3></a><p>In this guide, we walk through how to send POST requests with NodeJs SuperAgent Library. Including how to POST form data and JSON data.</p></div></div><div class="container articleSection_THW5"><div class="row articleRow_tQhl"><a class="text-brand3" href="/nodejs-web-scraping-playbook/nodejs-superagent-concurrent-threads/"><h3>SuperAgent: Make Concurrent Requests</h3></a><p>In this guide, we walk through how to configure NodeJs SuperAgent Library to make concurrent requests so that you can increase the speed of your scrapers.</p></div></div><div class="container articleSection_THW5"><div class="row articleRow_tQhl"><a class="text-brand3" href="/nodejs-web-scraping-playbook/nodejs-superagent-retry-failed-requests/"><h3>SuperAgent: Retry Failed Requests</h3></a><p>In this guide, we walk through how to configure NodeJs SuperAgent library to retry failed requests so you can build a more reliable system.</p></div></div><div class="grey-section bottomSection_jgkc"><section><div class="container"><div class="row bannerSection_odgg"><div class="col col--8 textSection_t3Ym"><h3>Need an easy way to monitor your scrapers?</h3><h3 class="brandColor_Ydux">Sign up for a free ScrapeOps account today.</h3></div><div class="col col--4 buttonSection_XsN2"><div class="inline-btn-container"><a class="link" href="/app/register/main/"><button class="button-body brand-button">Get Free Account</button></a><a class="link" href="/app/login/demo/"><button class="button-body white-button">Live Demo</button></a></div></div></div></div></section></div></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Resources</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/docs/intro/">Documentation</a></li><li class="footer__item"><a href="https://scrapeops.io/proxy-providers/comparison/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Proxy Comparison Tool</a></li><li class="footer__item"><a class="footer__link-item" href="/blog/">Blog</a></li><li class="footer__item"><a href="https://github.com/ScrapeOps" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub</a></li></ul></div><div class="col footer__col"><div class="footer__title">Web Scraping Guides</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/web-scraping-playbook/">Web Scraping Playbook</a></li><li class="footer__item"><a class="footer__link-item" href="/python-web-scraping-playbook/">Python Web Scraping Playbook</a></li><li class="footer__item"><a class="footer__link-item" href="/nodejs-web-scraping-playbook/">NodeJs Web Scraping Playbook</a></li><li class="footer__item"><a class="footer__link-item" href="/python-scrapy-playbook/">Python Scrapy Playbook</a></li><li class="footer__item"><a class="footer__link-item" href="/selenium-web-scraping-playbook/">Selenium Web Scraping Playbook</a></li><li class="footer__item"><a class="footer__link-item" href="/puppeteer-web-scraping-playbook/">Puppeteer Web Scraping Playbook</a></li><li class="footer__item"><a class="footer__link-item" href="/playwright-web-scraping-playbook/">Playwright Web Scraping Playbook</a></li></ul></div><div class="col footer__col"><div class="footer__title">Company</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/affiliate-program/">Affiliate Program</a></li><li class="footer__item"><a class="footer__link-item" href="/privacy-policy/">Privacy Policy</a></li><li class="footer__item"><a class="footer__link-item" href="/terms-of-service/">Terms Of Service</a></li><li class="footer__item"><a class="footer__link-item" href="/data-protection-policy/">Data Protection Policy</a></li><li class="footer__item"><a class="footer__link-item" href="/data-processing-agreement/">Data Processing Agreement</a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright 漏 2024 ScrapeOps.</div></div></div></footer></div> </body> </html>