Most people who ask me about automating a browser want the same thing. A website holds data they need, or a repetitive task lives inside a web app. Doing it by hand is eating their week.
This guide covers the tools I actually use. They range from a browser extension you can set up in an afternoon to a Python script that runs on its own, on a schedule.
Picking the right one comes down to two questions:
- How often does the job run?
- How much breakage can you live with?
What these tools actually do
A browser bot uses a real web browser the way a person would. It opens a page, waits for it to load, clicks buttons, types into fields, reads text, and moves on.
This is different from using an API. With an API, you ask a server for data directly and get back clean, structured results. Browser automation is the backup plan for when there's no API, or when the API costs more than the problem is worth.
Two terms you'll see everywhere
Selector: The address of an item on a page, such as .product-price. If the site's developers rename it, your bot can no longer find it. This is the most common reason a working scraper suddenly breaks.
Headless: Running the browser without a visible window. It's faster and cheaper on a server. However, some sites act differently when they detect no screen.
No-code tools for one-off jobs
Does your task run once a month and take twenty minutes by hand? Then you don't need a Python project. You need a macro.
UI.Vision RPA
UI.Vision is an open source browser extension built around recording actions. It watches what you click and type, then replays it for you.
RPA stands for robotic process automation. It's a big name for a simple idea: the software does the clicking.
You can save a recording, edit each step, and run it against a list of URLs from a CSV file. It works well for:
- Filling in forms
- Bulk downloads
- Moving data between two systems that can't connect directly
Automa
Automa is the other extension I use. Instead of recording, you build a flow from blocks: go to page, wait, click, extract text, loop, export.
The flow shows up as a diagram. This makes it easy for clients to see what their automation does and to change it later on their own.
Automa also handles simple logic well. "If this button exists, click it; if not, skip it" takes two blocks, not a rewrite.
Where no-code falls short
Both tools run inside your browser, so they come with limits:
- Your computer must stay on and awake.
- They struggle with thousands of pages.
- They don't give you a clear error log when something fails at 3am.
When a client needs a schedule, automatic retries, or a real database, I move the job to code.
When the job needs code: Playwright and its alternatives
Playwright is an open source library for Python and JavaScript. It controls Chromium, Firefox, and WebKit, so one script gives you cross browser coverage.
It's my default for any job that is scheduled, large, or needs to run without someone watching it. I keep the official Playwright documentation for Python open while I build.
Here's what a Playwright scraper can do that an extension can't:
- Waits smartly. It waits for elements to appear instead of guessing with fixed delays.
- Runs in parallel. It runs many separate browser sessions at once, each with its own cookies and logins.
- Works on a server. The job keeps going when your laptop is closed.
- Reports clear errors. A message like
TimeoutError: Timeout 30000ms exceededtells you exactly which step failed and what to fix.
Selenium and Puppeteer
Selenium and Puppeteer do the same basic job.
Selenium WebDriver is the oldest of the three and supports the most programming languages. Automation engineers use it in many company test automation suites, and it has long been the standard for cross browser testing.
Puppeteer is lighter and focuses on Chrome.
Clients often ask whether to use Puppeteer or Playwright for a new project. I usually recommend Playwright, because it covers more browsers with less code. That said, if you already have a working Selenium setup, I'll build on it rather than start over.
All three tools began as test automation tools. That's why they're so good at waiting, clicking, and checking what's on a page.
Where AI agents fit
AI-powered browser tools are the newest option. Instead of following fixed selectors, AI agents read the page and decide what to click, much like a person would. This makes them handy for irregular tasks on sites that change their layout often.
The downside: they're slower, cost more per run, and are less predictable than a scripted bot. For large or scheduled jobs, I still use Playwright. I save AI for the parts a script can't handle well.
Quick fixes with Tampermonkey and Chrome extensions
Not every problem needs a bot that runs on its own. Sometimes you just need a page to work better while you're using it.
Tampermonkey runs userscripts, which are small bits of JavaScript that change a page after it loads. A userscript can:
- Add a download button the site never gave you
- Clean up a cluttered layout
- Show a hidden field
- Copy a table to your clipboard in one click
A private Chrome extension does the same thing with more structure. It's the better choice when a whole team needs the tool.
These are the cheapest wins available. They take hours to build, not days. Your staff use them directly, instead of waiting for a file to land in their inbox.
Where the data goes after the bot runs
Collecting data is only half the job. Where you store it decides whether anyone actually uses it.
Situation | Best storage |
One-time pull | CSV file |
Recurring job, one user | SQLite (a single file, no server needed) |
Several people querying at once | PostgreSQL |
Team works in spreadsheets | Google Sheets or Airtable |
A pipeline nobody opens has no value, so match the storage to how your team works.
I also clean the data before storing it. That means:
- Consistent date formats
- No duplicate rows
- Prices stored as numbers, not text with currency symbols
Workflow tools: Zapier, n8n, and Make.com
Once data is flowing, you often want something to happen next. Zapier, n8n, and Make.com connect your apps without custom code. For example:
- A new row in a sheet sends an email.
- A webhook fires when a record changes.
- A REST or GraphQL endpoint gets called on a schedule.
n8n is the one I recommend most. It's open source and can run on your own server. That keeps your data on systems you control and avoids per-task fees on big jobs.
Zapier is the fastest to set up, as long as your volume is low and the connectors you need already exist.
Server setup with Ansible
Ansible works one layer below everything else here. It's a configuration management tool. You describe what a machine should have installed, and Ansible sets it up to match.
It's the standard choice on Linux servers. The Ansible getting-started guide covers the basics well.
Ansible matters when a scraper moves from your laptop to a server. Python, browser files, and a scheduler all need to be installed the same way every time, and Ansible handles that for you.
Trading automation is a separate track
VectorBT and backtesting.py are tools for testing trading strategies. People ask about them, so I mention them here. But they solve a different problem: testing a strategy against past price data, not pulling data from websites.
They're not part of the toolkit above, and I don't take on trading bot work.
Terms of service and robots.txt
I'll tell you what's technically possible on any site you bring me. Whether you should automate it is your decision.
Before starting a project, check the site's terms of service and its robots.txt file. If robots.txt is new to you, Google's introduction to robots.txt explains it clearly.
Which tool is right for your job?
Your situation | Best tool |
Runs now and then, small volume, you're at the computer anyway | UI.Vision or Automa |
Runs on a schedule, large volume, no one watching | Playwright |
Improving one page for your team | Tampermonkey or a Chrome extension |
Connecting apps that already hold your data | n8n or Zapier |
Want someone to handle it for you?
If you'd rather skip choosing tools altogether, see the overview of the automation services I offer, which covers the six areas I build in. You can also start a custom scraper or automation build with me directly.
For more guides on scraping and automation, browse the DatafetchPro article archive. To learn how I work, visit the page about me and my process.