Daraz Review Extractor

React · Express.js · Web Scraping · Thesis Tool

A thesis-purpose data-collection tool that scrapes Daraz product and category reviews in one click. Built because existing Chrome scraping extensions cap at 5 reviews per page — making a 100-review dataset a 20-page manual job. Pick a scraper type (single product or category), choose a rating mode (all / specific / range), set a page range (start → end), pick your columns, and export the full dataset as CSV or Excel. Handles 100,000+ reviews in a single run.

Project Overview

Daraz Review Extractor started as a problem I hit while preparing the dataset for my undergraduate thesis on multilingual review analysis. Off-the-shelf Chrome scraping extensions on Daraz only capture the reviews visible on a single page — about 5 at a time — so assembling a dataset of even 100 reviews meant manually walking through 20 pages, and there was no way to filter out obviously positive 4- and 5-star reviews beforehand. To fix this, I built a purpose-built scraper with a clean three-step workflow. First, the user selects a scraper type: single product or category. Second, they paste the matching URL. Third, they apply filters — a rating mode (all ratings 1–5, a specific rating, or a rating range), a page-range filter (start page → end page, so a 102-page product can be sliced down to pages 1–20), and a column selector for choosing exactly which fields to export. The Express.js backend walks every requested page of every product, extracts the matching reviews, and returns a clean dataset — handling over 100,000 reviews in a single run. Results download as CSV or Excel, ready to drop into a Jupyter notebook, a spreadsheet, or a downstream NLP pipeline. The tool is deployed live on Vercel and was the primary source of review data for my thesis work on Bangla, English, and Banglish review classification — the same engine later integrated into Ifjona's admin panel.

Key Features

  • Selectable scraper type — single product URL or full category URL
  • Scrapes every page of every product, bypassing the 5-reviews-per-page limit of Chrome extensions
  • Handles 100,000+ reviews in a single scraping run
  • Rating filter with three modes: All ratings (1–5), Specific rating, or Rating range
  • Page-range filter (start page → end page) — slice a 102-page product down to pages 1–20 for sampling or split jobs
  • Column selector — choose exactly which fields to include in the export
  • One-click download as CSV or Excel
  • Category system for organising large multi-product scrapes
  • Live deployment on Vercel
  • Built to feed a thesis-grade multilingual review dataset (English, Bangla, Banglish)

Challenges & Solutions

Challenge

Existing Chrome scraping extensions could only capture the ~5 reviews visible per Daraz page — making a dataset of 100 reviews a 20-page manual chore, and scaling to the 100,000+ reviews a thesis-class dataset actually needs completely impossible.

Solution

Built a scraper that programmatically walks every review page for a product (and every product inside a category), so a single URL produces the entire dataset — no manual pagination, no extension limits. The tool now handles 100,000+ reviews in a single run.

Challenge

Different thesis experiments needed different slices of data — sometimes every review, sometimes only the bad ones, sometimes a specific rating band, and sometimes just a page range to sample or resume a job.

Solution

Designed a flexible filter panel with three independent controls: a scraper type toggle (single product or category), a rating filter with three modes — All ratings (1–5), Specific rating, and Rating range — and a page-range filter using start and end page inputs. Any combination can be applied, giving precise control over exactly what enters the dataset.

Challenge

Scraping at scale risks timeouts, rate limits, and memory exhaustion if every review is buffered naively in memory before being written out.

Solution

Streamed review data to disk as it was collected and paginated requests rather than firing them all at once — allowing long multi-hour scraping jobs to complete reliably without the server crashing midway.

Challenge

Some products had over 100 pages of reviews — running a full scrape every time was wasteful when only a sample was needed, and long jobs sometimes had to be split across sessions.

Solution

Added a page-range filter with start page and end page inputs, so users can scrape any slice of a product's review history. A 102-page product can be trimmed to pages 1–20 — enabling fast sampling, incremental collection across sessions, or targeted re-scraping of a range that failed earlier.

Challenge

Different analyses needed different columns — sometimes just review text and rating, other times the full set including reviewer and date.

Solution

Built a column selector that lets the user choose exactly which fields to include, and a one-click export as CSV or Excel — so the output drops straight into Jupyter, Excel, or an NLP pipeline without post-processing.

Challenge

Daraz reviews mix English, Bangla, and Banglish (e.g. “Product ta ekdom faltu”), and the downstream classifier needed this raw multilingual text intact.

Solution

Kept the extraction layer language-agnostic — reviews are stored verbatim with no cleaning or translation — so the exported dataset can feed any downstream model, including the FastAPI review-classification engine later integrated into Ifjona.

Challenge

The tool needed to be usable by non-developers (thesis supervisors, collaborators) without local setup.

Solution

Deployed the full app live on Vercel so anyone can paste a URL and get a dataset in seconds — no install, no CLI, no notebook required.

Project Info
  • RoleFull-Stack Developer (Solo)
  • StatusCompleted / Live
Tech Stack
ReactExpress.jsNode.jsWeb ScrapingREST APICSV ExportExcel ExportVercel