Portfolio
All work12 / 28

Restaurant Data Scraper

A scraper that pulled 2,154 restaurants — menus, prices, photos and coordinates — off UberEats and handed them back as a spreadsheet.

Restaurant Data Scraper
Client
Private client
Year
2021
Engagement
Freelance
Live site
Internal tool, not public
Scope
  • Automation
Stack
  • Selenium
  • Node.js

About the project

A client wanted UberEats' restaurant data for four districts of New Taipei as something they owned: menus, delivery fees, opening hours, coordinates and photographs, in a spreadsheet rather than on somebody's website.

Selenium drives a real Chrome, because the pages render in JavaScript and their class names are generated rather than written — so the crawler reads a class off the DOM at runtime and searches by that instead of by fixed selectors, then keeps clicking "load more" until the list stops growing. It runs district by district: collect the store URLs, then the details, then the menus, then download every image, then merge it all and write the Excel file.

Each district keeps its failures in a file of its own, so a store that broke mid-run can be retried without redoing the six hundred that worked. The finished set came to 2,154 restaurants and about 39 MB of JSON before export.