By globoglobito
The aim of this fun little project is to create a tool to allow me to catch a GPU (specifically a Nvidia RTX 3090) at MSRP.
(My trusty AMD Radeon Fury X is growing long in the tooth).
To provide some context it is 2021, and there is a widespread semi-conductor shortage. This shortage is partly caused by the COVID-19 pandemic, partly by the cryptocurrency mining boom. As such, GPUs are extremely scarce; either hoarded by mining farms or bought by scalpers with the help of bots.
Therefore, I built this data pipeline as a way to combat fire with fire (given that I refuse to pay the current prices), and to brush up my Python skills.
- If a GPU is found @ MSRP, it sends me an email with the URL.
2) Once it is done, it dumps the information into a PostgresDB table that is running in a docker container.
3) Finally, I have a Grafana container that uses this information to visualise the data in a simple dashboard.
(Current version of the dashboard.)
I am using Windows task scheduler. For Linux you can use a simple crontab job.
Because my current setup is borderline small form factor. Meaning only blower-style GPUs, and the EVGA XC3 line fits. Furthermore, I did not include Amazon links because I am not bothering to compete against other tools that do the job better (like CamelCamelCamel). Finally, the competition against other scalpers is downright silly (a listing went down in 49 secs after I got notified of an available GPU).
Multiple reasons: By scraping in a smaller timeframe, I could potentially trigger anti-bot measures, such as getting my IP temporarily blocked. Moreover, I would fill my database pretty quickly; given it is running inside a minuscule SSD.
Sure, go nuts.
Because this is the first time I have done something like this. If you have a suggestion, feel free to share it.