Skip to content

Latest commit

 

History

History
100 lines (69 loc) · 3.01 KB

File metadata and controls

100 lines (69 loc) · 3.01 KB

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