Scrapers

Food delivery scrapers

Zomato and Uber Eats, with city listings plus full restaurant menus.

Zomato

from pyscrappy import ZomatoScraper
 
with ZomatoScraper() as scraper:
    result = scraper.scrape(city="bangalore", max_results=20)

Uber Eats: city listings + full menus

The Uber Eats scraper lists restaurants for a city in any country Uber Eats operates in, then fetches the full menu of any restaurant. Pass the country's locale.

from pyscrappy import UberEatsScraper
 
with UberEatsScraper(locale="gb") as scraper:
    result = scraper.scrape(city="London", max_results=30)
 
    store = result.data[0]
    menu = scraper.get_menu(store["url"])   # items with prices
    for item in menu.data[0]["menu"]:
        print(item["name"], item["price"])

The workflow is two steps:

  1. .scrape(city=...) returns restaurants (name, ETA, delivery fee, and a store url).
  2. .get_menu(store_url) returns that restaurant's menu items and prices.

Set locale to the country you're querying (e.g. "gb", "us", "in"). The city must be one where Uber Eats delivers, or the result will be empty.