Website that generates movie/TV show recommendations by scraping Rotten Tomatoes based on user filters Built using Flask, Bulma, Celery, and BeautifulSoup
Hosted at rt-recs.com
- Deployed using AWS Elastic Beanstalk and Redis
- Note: This app may fail to generate recommendations if the Rotten Tomatoes website has changed. While I do try to maintain the website regularly, it won't be working all the time.
- Frontend and filter improvements coming soon!
Note: You could also use a conda env or any venv of your choice
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
To stop Rotten Tomatoes from blocking my requests, I use proxies. You could use any proxies of your choice; I'll be going over a free provider that I use:
- Go to https://www.webshare.io/
- Sign up/log in
- In the left sidebar, click on "Proxy", then "List" in the drop-down. The default settings should be fine.
- Click on "download", then copy the provided URL
- In .env.template, replace "URL goes here" with the copied URL.
- Rename .env.template to .env
It may be helpful to have US-based proxies, as the app was built to accomodate streaming platforms available in the US.
- Install Redis for your OS here: https://redis.io/docs/getting-started/
- Run
redis-server
in a separate window and verify that the displayed port is 6739
- Run
celery -A app.celery_app worker --loglevel=INFO -E
in a separate window
- Run
flask run
- Optional: Run
pytest tests.py
for some basic tests! (should take ~90s to run)