With the high demand for graphics cards (GPUs) and limited supply, purchasing one before it sells out can be a challenge. Using Python and Selenium, you can automate the buying process to increase your chances of securing a GPU. In this guide, we will walk through the steps to create a Python bot that will automatically check for stock, add a GPU to the cart, and proceed with checkout.
1. Prerequisites
Before starting, ensure you have the following installed:
- Python 3.x (Download from Python.org)
- Google Chrome and ChromeDriver (Ensure the ChromeDriver version matches your Chrome version: Download here)
- Selenium library (Install via
pip install selenium
)
2. Setting Up the Environment
First, install the required Python libraries:
pip install selenium
Then, download and place the ChromeDriver in a known directory.
3. Writing the Python Bot
Below is a simple Python script that automates adding a GPU to the cart from an online store like Best Buy or Amazon.
Step 1: Import Dependencies
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys import time
Step 2: Configure the Web Driver
driver_path = "path/to/chromedriver" # Update this with your actual path options = webdriver.ChromeOptions() options.add_argument("--incognito") options.add_argument("--start-maximized") driver = webdriver.Chrome(executable_path=driver_path, options=options)
Step 3: Navigate to the Product Page
gpu_url = "https://www.bestbuy.com/site/some-gpu-url" driver.get(gpu_url) time.sleep(2)
Step 4: Check Availability and Add to Cart
while True: try: add_to_cart_button = driver.find_element(By.CSS_SELECTOR, ".add-to-cart-button") if add_to_cart_button.is_enabled(): add_to_cart_button.click() print("GPU added to cart!") break else: print("GPU out of stock. Refreshing...") driver.refresh() time.sleep(3) except: print("Error finding the button. Retrying...") driver.refresh() time.sleep(3)
Step 5: Proceed to Checkout
checkout_url = "https://www.bestbuy.com/cart" driver.get(checkout_url) time.sleep(2) checkout_button = driver.find_element(By.CSS_SELECTOR, ".checkout-buttons__checkout") checkout_button.click() print("Proceeding to checkout...")
Step 6: Auto-Fill Login and Payment Details (Optional)
To automate login:
email_input = driver.find_element(By.ID, "fld-e") password_input = driver.find_element(By.ID, "fld-p1") email_input.send_keys("your-email@example.com") password_input.send_keys("your-password") password_input.send_keys(Keys.RETURN) print("Logged in successfully.")For credit card details, it is not recommended to store sensitive information in a script. Instead, use a password manager or manually complete checkout.
4. Running the Bot
Save the script as gpu_bot.py and run:
python gpu_bot.pyThe bot will continuously refresh the page and attempt to buy the GPU once available.
5. Tips for Success
Use Headless Mode: Add options.add_argument("--headless") to run the bot without opening a browser.
Set Custom Wait Times: Adjust time.sleep(x) to avoid bot detection.
Use Proxies or VPN: Prevent getting blocked for frequent requests.
Check Site HTML: Some websites use dynamic elements; inspect them using Chrome Developer Tools (F12).