HTML

    Select a Subtopic

    πŸš€ Day 13: Handling Instagram’s Anti-Bot Measures

    βœ… 1. Using Proxies to Rotate IPs

    A proxy server hides your IP address by acting as an intermediary between your bot and Instagram. This helps in avoiding detection, especially when you're making repeated requests.

    from selenium import webdriver
    from selenium.webdriver.chrome.service import Service
    from selenium.webdriver.chrome.options import Options
    
    # Proxy setup
    PROXY = "123.45.67.89:8080"  # Replace with a working proxy
    
    # Chrome options
    chrome_options = Options()
    chrome_options.add_argument(f'--proxy-server={PROXY}')
    
    # Initialize driver
    service = Service("path/to/chromedriver")
    driver = webdriver.Chrome(service=service, options=chrome_options)
    
    # Open Instagram
    driver.get("https://www.instagram.com/")

    βœ… 2. Randomizing Delays and Actions

    Instagram can detect bots by analyzing the speed and pattern of interactions. To mimic human behavior:

    • Use random delays between actions.
    • Randomize the order of actions.
    • Avoid repetitive tasks in quick succession.
    import time
    import random
    
    # Function to add random delays
    def random_delay():
        delay = random.uniform(2, 5)  # Random delay between 2 to 5 seconds
        time.sleep(delay)
    
    # Example usage
    username.send_keys("your_username")
    random_delay()
    password.send_keys("your_password")
    random_delay()
    login_button.click()

    βœ… 3. Mimicking Human Behavior

    To make your bot more human-like:

    • Scroll the page gradually using execute_script().
    • Hover over elements before clicking them.
    • Interact with different sections of the page randomly.
    # Scroll to the bottom of the page slowly
    for i in range(10):
        driver.execute_script("window.scrollBy(0, 500);")
        random_delay()

    βœ… 4. Complete Example Code

    import time
    import random
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.chrome.service import Service
    from selenium.webdriver.chrome.options import Options
    
    # Proxy setup
    PROXY = "123.45.67.89:8080"
    
    # Chrome options
    chrome_options = Options()
    chrome_options.add_argument("--disable-notifications")
    chrome_options.add_argument("--start-maximized")
    chrome_options.add_argument(f'--proxy-server={PROXY}')
    
    # Initialize the driver
    service = Service("path/to/chromedriver")
    driver = webdriver.Chrome(service=service, options=chrome_options)
    
    # Open Instagram
    driver.get("https://www.instagram.com/")
    time.sleep(5)
    
    # Function to add random delays
    def random_delay():
        delay = random.uniform(2, 5)
        time.sleep(delay)
    
    # Locate and interact with login fields
    username = driver.find_element(By.NAME, "username")
    password = driver.find_element(By.NAME, "password")
    login_button = driver.find_element(By.XPATH, "//button[@type='submit']")
    
    # Enter credentials with random delays
    username.send_keys("your_username")
    random_delay()
    password.send_keys("your_password")
    random_delay()
    login_button.click()
    
    # Mimic human scrolling behavior
    for i in range(10):
        driver.execute_script("window.scrollBy(0, 500);")
        random_delay()
    
    # Close the browser
    driver.quit()

    🎯 Day 13 Practical Task

    • βœ… Set up proxy support in your bot.
    • βœ… Add random delays to your actions.
    • βœ… Implement scrolling behavior that mimics human activity.