Comparison of popular web scraping API services

Full Stack Developer, focused on web automation, open source enthusiast and contributor.
Passionate about programming, specializing in JavaScript.
Search for a command to run...

Full Stack Developer, focused on web automation, open source enthusiast and contributor.
Passionate about programming, specializing in JavaScript.
Amazingly I'm impressed reading your few articles. Best of luck
The grey-ish way of winning the never ending cat and mouse game for the right purpose.

Can you break their protection?

You might have written spaghetti code so many times in your life that you regret it and you have asked the following, How can I go from writing spaghetti code to coding like professional? Originally, I wrote it as an answer on quora, and here I've ...

Meltdown between ScraperAPI, ScrapingBee, ScrapeStack, ScrapeUp, ProxyCrawl and more.
Web scraping is challenging task. We can get data using curl, Axios and extract the data ourselves. But sometimes just using curl is not enough to handle massive amount of extraction.
Ever had trouble extracting data from a giant e-commerce website with millions of pages for your price comparison website?
That's where scraping API services comes to play. They makes web scraping a breeze. Most of them have support for many languages like Bash, Node, Python, PHP etc, and important features like rotating proxies, Captcha, rendering JavaScript, custom headers, sessions, location spoofing, etc.
Let's start with a sample use-case using NodeJS. We can use python, dart and almost any programming language since these services will provide you with an API, as well as SDK/libraries.
We will create a simple project using npm.
mkdir scraper && cd scraper
npm init -y
npm install axios
For the target website, we will use example.com to get a very basic idea of how to do it.
const axios = require('axios').default;
async function scrape(){
const response = await axios
.get('<http://api.scraperapi.com>', {
params: {
api_key: "API_KEY",
url: "<http://example.com>"
}});
console.log(response.data);
}
scrape();
You would need to change the API_KEY with appropriate api key you get from the dashboard.
Once you run this code, you would get a response in the console.
➜ node index.js
<!doctype html>
<html>
<head>
<title>Example Domain</title>
<meta charset="utf-8" />
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style type="text/css">
body {
background-color: #f0f0f2;
margin: 0;
padding: 0;
font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
}
...
What if you want to extract data from a dynamic website? For example the data from duckduckgo search result page? You just need to add render: true to the params.
const axios = require('axios').default;
async function scrape(){
const response = await axios
.get('<http://api.scraperapi.com>', {
params: {
api_key: "API_KEY",
url: "<https://duckduckgo.com/?q=test&t=h_&ia=web>",
render: true
}});
console.log(response.data);
}
scrape();
It would render the page with proper scripts, and return code from the rendered page, which is very useful for dynamic websites built with frameworks like ReactJS, NextJS, Angular, VueJS etc.
It takes less than few minutes to setup and get started whereas setting up a project using chromium takes hours of work. Ofc both has it's own perks, but it's good for prototypes.
Even though ScraperAPI is a great start, it's best to compare several services to see how fast, powerful, developer-friendly, customer-friendly they are.
We will use these few sites to see if they can even load the pages. It's alright to fail the tests since these are all highly protected sites. It's alright to fail this test, but will be a huge plus point if it loads.
One of the oldest, first and best web scraping api service. They have best customer support and can handle massive amount of loads. They are trusted by founder of Parse, optimization director at SquareTrade and many more. They are my go-to solution for most of the time.
Pricing:
TAHER10 is usedFeatures:
Test Results:
They are fairly new service with a good amount of free credits.
Pricing:
Features:
They are a service provided by apilayer, serving companies like Amazon, Slack, Zendesk with their various API products.
Pricing:
Features:
Test Results:
Not just a simple HTML scraper like others. They have post-loading functions for screenshot, extraction etc.
Pricing:
Features:
Test Results:
Scraping API is just one of their features. They also have API for crawling, backconnect proxies, leads, screenshot and many more.
Pricing:
Features:
Test Results:
| Site/Service | ScraperAPI | ScrapingBee | ScrapeStack | ProxyCrawl |
| Example.com | ✅ | ✅ | ✅ | ✅ |
| Datadome Blog | ✅ | ✅ | ❌ | ✅ |
| Sephora.com | ✅ | ✅ | ❌ | ✅ |
| Booking.com | ✅ | ✅ | ✅ | ✅ |
| FastPeopleSearch.com | ✅ | ❌ | ❌ | ❌ |
If you want to extract data from big companies for machine learning and educational research, it would be best to leverage the proxy API instead of trying to handle this mess yourself unless you have a very custom requirement or require some level of web automation.