Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Zenrows vs Bright Data Benchmark

Scripts and raw data from an original benchmark comparing Zenrows and Bright Data's Web Unlocker across 7 target URLs, conducted in June 2026.

Companion code for the Zenrows article Best Bright Data Alternative for Self-Service Scraping.

Test targets

Target Type URL
Amazon product page Protected https://www.amazon.com/ref=nav_logo
Glassdoor company page Protected https://www.glassdoor.com/Overview/Working-at-Google-EI_IE9079.11,17.htm
LinkedIn public profile Protected https://www.linkedin.com/in/satyanadella/
Google SERP results page Protected https://www.google.com/search?q=web+scraping+api
IKEA (Cloudflare-protected e-commerce) Protected https://www.ikea.com/
Zillow real estate listing Unprotected https://www.zillow.com/homes/for_sale/
BBC news article Unprotected https://www.bbc.com/news/technology

Methodology

  • 100 requests per target per platform
  • Zenrows configured with mode=auto on all requests
  • Bright Data using the Web Unlocker endpoint
  • Recorded per request: HTTP status code, response time (ms), and page title detection

What this test does not cover

  • Bulk asynchronous job workflows
  • Session persistence across multi-step logged-in workflows
  • Bright Data's pre-built dataset products

Setup

Prerequisites

1. Clone the repository

git clone https://github.com/ZenRows/zenrows-vs-brightdata-benchmark.git
cd zenrows-vs-brightdata-benchmark

2. Create a virtual environment

python -m venv .venv
source .venv/bin/activate   # macOS/Linux
.venv\Scripts\activate      # Windows

3. Install dependencies

pip install -r requirements.txt

4. Configure API keys

Both scripts read their credentials from the environment:

export ZENROWS_API_KEY=your_zenrows_api_key
export BRIGHTDATA_API_KEY=your_brightdata_api_key

Running the benchmark

Each platform is run by its own script:

python zenrows.py      # writes zenrows_benchmark_results.csv
python brightdata.py   # writes brightdata_benchmark_results.csv

Each run issues 100 requests per target, so expect it to take a while.

Output

Both scripts write a CSV to the repository root recording, per request: target name, URL, HTTP status code, response time, whether a page title was detected, and success status.

The data/ folder holds the aggregated spreadsheet used to produce the figures in the article.

Repository structure

.
├── zenrows.py        # Zenrows benchmark run
├── brightdata.py     # Bright Data Web Unlocker benchmark run
├── data/             # aggregated results used in the article
├── requirements.txt
└── README.md

License

MIT