This is a simple price drop alert system made with Django.
- User needs to register first, with an email id of their choice .
- Then login with the registered credentials.
- User may enter a product URL copied from flipkart ,then check the response and add it to the watchlist.
- All URLs in the watchlist are scraped every time the scheduler runs.
- Changes to the price or availability of the product is then saved to the database.
- User will get an email when the product experiences a price drop or whenever the product is back in stock.
Install dependencies beforehand.
pip install -r requirements.txt
EMAIL_HOST_USER = "replace this with the email-id( Gmail id ) you are going to use."
EMAIL_HOST_PASSWORD = "the google account password"
Note: This Email-id and password(must be a Gmail one) is for the system to mail the alerts to the users. The registering users must enter their email-id on the sign-up page.
Also enable less secure app access in google account
The database used is MySQL due to limitations in SQLite.
This is to prevent "Table 'django_pricedrop_db.django_apscheduler_djangojob' doesn't exist" error when migrating the database.
# def ready(self):
# from .scheduler import scheduler
# scheduler.start()
python manage.py makemigrations
then
python manage.py migrate
as below This is to start the periodic scheduler
def ready(self):
from .scheduler import scheduler
scheduler.start()
For running use
python manage.py runserver --noreload
use --noreload otherwise scheduler will run twice
Web scraping and crawling aren't illegal, but scraping a website without the owners permission is not legal.
Use it only for educational purpose and don't overwhelm the servers by sending mass requests.