Stores Scrap project provides an API which can be used to scrap any store menu from food booking websites including foody, deliveroo, ubereats, wolt, and e-food.
Backend of this project is written in Flask
python3 -m venv env
source env/bin/activate
pip install -r requirements.txt
It requires a REDIS server, and a MongoDB to work. Following ENV variables can be used to provide these settings:
export MONGODB_HOST="MONGODB_HOST_HERE"
export REDIS_HOST="REDIS_HOST_HERE"
nose2 -v
gunicorn runserver:app
celery -A runserver:celery worker
This project contains the Dockerfile for building both API service and worker service, and it also contains the docker-compose.yaml file that can be used to start all services altogether.
To start the services:
docker-compose up -d
To stop the services:
docker-compose down
API Documentation for this project can be found here.
API can be tested in local environment using Postman. API parameters are store-key and domain-key, and there is no need to introduce other arguments. And It can be tested in the following procedure:
First of all, open the postman and put the send method as GET.
http://localhost:5000/api/store-menu?store-key={store_key}&domain-key={domain-key}
The API is configured as the above structure. Here store-key and domain-key parameters are used to determine the specific store which will be scraped.
-
Ensure the website of which store you are going to scrap and put the corresponding domain name into the domain-name field of the API parameters.
foody.com.cy: FOOD.CY
deliveroo.co.uk: DELIVEROO.NL
wolt.com: WOLT.COM
ubereats.com: UBEREATS.COM
e-food.gr: EFOOD.GR
-
Get the link of the store you want to scrap.
For example, the API should have to following structure:
http://75.119.153.127/api/store-menu?store-key=starbucks&domain-key=FOOD.CY
-
Copy and paste it into the store-name field of the API parameters.
-
And click the send button and wait until response gets back to the response field.
-
If it is the first time to scrap that store, then you will get the following JSON object of which status value is "Store menu scraping process is started!".
-
If you want to see the scraping result, you have to click send button once more. Then you can get the following result in the response field.