Categories:Scraping Use Cases,Scraping Tools
How to Scrape Any Website in UiPath with Scrape.do (No Proxies, No Code)

Growth
Web scraping inside RPA workflows usually breaks for the same boring reasons: the target site blocks the datacenter IP, throws a CAPTCHA, or hides its content behind JavaScript that a plain HTTP request never executes. You end up babysitting proxies and writing brittle retry logic instead of shipping automation.
This guide shows a cleaner path. We connect Scrape.do to UiPath as a native Integration Service connector, then build an API Workflow that reads a list of URLs from Google Sheets, scrapes each one through Scrape.do, and writes the result back next to it. Proxy rotation, anti-bot bypass, CAPTCHA handling, and JavaScript rendering all happen on Scrape.do's side. Your UiPath workflow just sends a URL and gets clean HTML back.
Two ready-to-import files are attached at the bottom of this post: the connector and the bulk workflow. You can install them as-is and be scraping in a few minutes.
What You'll Build
A bulk scraping pipeline with three moving parts:
- The Scrape.do connector — a reusable Integration Service connector with a single "Scrape a URL" action. You plug in your API token once.
- A Google Sheet — column A holds the URLs you want to scrape. Column B receives the scraped HTML.
- The "Scrape Do Bulk" API Workflow — reads every URL from the sheet, calls Scrape.do for each one, and writes the page content back into column B.
The end result: drop a list of URLs into a spreadsheet, run the workflow, and watch the scraped HTML fill in row by row.
Why Scrape.do for This
Scrape.do is a web scraping API. You send it a target URL and it returns the page's raw HTML or fully rendered content. Behind that single request it handles:
- Automatic proxy rotation across residential, mobile, and datacenter pools
- Anti-bot bypass for the common protection layers that block plain requests
- CAPTCHA handling
- JavaScript rendering through a headless browser, so client-side content shows up
A couple of practical details that matter for this integration:
- You're only charged for successful (2xx) requests. Failed requests are free, which is forgiving while you're testing.
- The free tier includes 1,000 requests per month, enough to build and validate the whole workflow before you commit to anything.
If you don't have a token yet, you can grab one on the free tier here and follow along.
Step 1 — Import the Scrape.do Connector
The connector is the bridge between UiPath and the Scrape.do API. It's packaged as a single export file.
- In UiPath, open Integration Service.
- Go to Connectors and choose to import a connector from a file.
- Select the connector package (
scrapedo-uipath-connector.zip, attached below). - Confirm the import.
UiPath registers a new Scrape.do connector with one action, Scrape a URL, and a Target URL field. JavaScript rendering is exposed as a simple toggle on the action.
Step 2 — Create Your Scrape.do Connection
A connector is the template; a connection is your authenticated instance of it. This is where your token lives — and the token stays on your side, never inside the shared files.
- On the Scrape.do connector, choose Add connection.
- Paste your Scrape.do API token into the API key field.
- Save. The connection should show as connected.
That's the only place your token is entered. Anyone you share the workflow with adds their own token to their own connection.
Step 3 — Set Up Your Google Sheet
The workflow uses a spreadsheet as its input and output surface. Keep the structure simple:
Column A (url) |
Column B (result) |
|---|---|
| https://example.com | (leave empty) |
| https://quotes.toscrape.com | (leave empty) |
| https://books.toscrape.com/catalogue/a-light-in-the-attic_1000/index.html | (leave empty) |
- Column A holds your target URLs, one per row, with a header in A1.
- Column B is where scraped HTML lands. Leave it empty before each run.
One important habit: clear column B before every run. The workflow reads the whole row, so if old HTML is still sitting in column B, it gets mixed into the URL on the next pass and the request fails. Empty B column in, clean results out.
Step 4 — Import and Configure the Workflow
The bulk workflow is exported as a UiPath solution file.
- In Studio Web, import the workflow file (
Scrape-Do-Bulk-Workflow.uis, attached below). - Open the imported Scrape Do Bulk project.
- Bind the two connections it expects:
- Google Sheets — connect your own Google account.
- Scrape.do — select the connection you created in Step 2.
- In the Read Range and Write Cell activities, select your own spreadsheet (the shared file ships with these emptied, so you point them at your sheet).
Because the connections authenticate after deployment, nothing personal travels inside the file. You bring your own Google account, your own token, and your own sheet.
How the Workflow Actually Works
If you want to understand or modify it, here's the logic end to end:
- Read Range pulls every row from your sheet into a list of values.
- For Each loops over those rows.
- If skips the header row so the workflow doesn't try to scrape the literal word "url".
- Scrape a URL (the Scrape.do action) sends the row's URL to the API with Render JavaScript turned on, and receives the page content back.
- Assign builds the destination cell address for the current row (so each result lands on its own line instead of overwriting the previous one).
- Write Cell writes the scraped HTML into column B of that row.
Run it, and column B fills in one row at a time with the real page content for each URL.
Things Worth Knowing Before You Scale Up
A few realities to plan around:
- The 50,000-character cell limit. Google Sheets caps a single cell at 50,000 characters. Small pages fit comfortably; large, content-heavy pages can exceed it and the write will fail. For demos and moderate pages this is a non-issue. If you're scraping big pages at scale, write the HTML somewhere with more room than a spreadsheet cell, or extract just the fields you need instead of storing the full HTML.
- Rendering uses more credits. This workflow turns on JavaScript rendering for every URL, which spins up a headless browser and costs more than a plain fetch. If your targets are static HTML, you can turn rendering off and the requests get cheaper and faster.
- Occasional transient failures are normal. A site might momentarily refuse a request and return an error. Since Scrape.do doesn't charge for failed requests, a simple retry usually clears it — and you're not paying for the misses.
Install Order Matters
When you share these files or set them up fresh, import the connector first, then the workflow. The workflow depends on the connector being present in your Integration Service. Load them the other way around and the workflow won't find the action it needs.
Wrapping Up
With the connector and workflow in place, web scraping inside UiPath stops being a proxy-management project and becomes a single action you can drop into any automation. You hand Scrape.do a URL, it deals with the hostile parts of the open web, and you get clean content back into your process.
Download the two files below, plug in your token, and point the workflow at your own sheet.
Downloads:
scrapedo-uipath-connector.zip— the UiPath Integration Service connectorScrape-Do-Bulk-Workflow.uis— the bulk scraping API Workflow
Start scraping with Scrape.do — free tier, 1,000 requests/month →

Growth

