├── README.md ├── LICENSE └── instagram_follower.py /README.md: -------------------------------------------------------------------------------- 1 | # grow-instagram-following 2 | Basically black-hatting instagram to growth hack your account 3 | Uses python and Selenium. You need the Chrome extention for Selenium to web automate this python script. 4 | 5 | Currently follows all the followers on Justin Bieber's followers list. If you're so inclined, replace the URL in there with someone elses, and you can follow theirs. 6 | 7 | Just call the script in your command. 8 | 9 | TODO: Randomize Variables, Rate Limit of 60/hr, and Follow multiple people at once 10 | 11 | Colab Project of toooo1 & jakeingit 12 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2016, Jake Goss-Kuehn 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are met: 6 | 7 | * Redistributions of source code must retain the above copyright notice, this 8 | list of conditions and the following disclaimer. 9 | 10 | * Redistributions in binary form must reproduce the above copyright notice, 11 | this list of conditions and the following disclaimer in the documentation 12 | and/or other materials provided with the distribution. 13 | 14 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 15 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 17 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 18 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 20 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 21 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 22 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 | -------------------------------------------------------------------------------- /instagram_follower.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | import time; 4 | import sys; 5 | 6 | from selenium import webdriver; 7 | import selenium.webdriver.chrome.service as service; 8 | from selenium.webdriver.common.by import By; 9 | from selenium.webdriver.common.keys import Keys; 10 | 11 | 12 | count = 0; 13 | 14 | print("Username: "); 15 | USER = raw_input(); 16 | 17 | print("Password: "); 18 | PASS = raw_input(); 19 | 20 | print("Working..."); 21 | 22 | f = open("data2.txt", "w") 23 | f.close() 24 | 25 | service = service.Service('../chromedriver'); 26 | service.start() 27 | capabilities = {'chrome.binary': '/path/to/custom/chrome'} 28 | 29 | driver = webdriver.Remote(service.service_url, capabilities); 30 | driver.get('https://www.instagram.com/justinbieber/followers/'); 31 | 32 | 33 | username = driver.find_element(By.XPATH, '//*[@id="react-root"]/div/article/div/div[1]/div/form/div[1]/input'); 34 | password = driver.find_element(By.XPATH, '//*[@id="react-root"]/div/article/div/div[1]/div/form/div[2]/input'); 35 | 36 | login = driver.find_element(By.XPATH, '//*[@id="react-root"]/div/article/div/div[1]/div/form/span/button'); 37 | 38 | username.clear(); 39 | username.send_keys(USER); 40 | 41 | password.clear(); 42 | password.send_keys(PASS); 43 | 44 | login.click(); 45 | 46 | print("Please wait..."); 47 | 48 | time.sleep(8); 49 | 50 | loop = 1; 51 | 52 | while (loop) : 53 | 54 | driver.refresh(); 55 | 56 | driver.find_element(By.XPATH, '//*[@id="react-root"]/section/main/article/header/div[2]/ul/li[2]').click(); 57 | 58 | time.sleep(2.5); 59 | 60 | driver.find_element(By.XPATH, '/html/body/div[2]/div/div[2]/div/div[2]/ul/li[1]/div/div[2]/span/button').click(); 61 | count = count + 1; 62 | driver.find_element(By.XPATH, '/html/body/div[2]/div/div[2]/div/div[2]/ul/li[2]/div/div[2]/span/button').click(); 63 | count = count + 1; 64 | driver.find_element(By.XPATH, '/html/body/div[2]/div/div[2]/div/div[2]/ul/li[3]/div/div[2]/span/button').click(); 65 | count = count + 1; 66 | driver.find_element(By.XPATH, '/html/body/div[2]/div/div[2]/div/div[2]/ul/li[4]/div/div[2]/span/button').click(); 67 | count = count + 1; 68 | driver.find_element(By.XPATH, '/html/body/div[2]/div/div[2]/div/div[2]/ul/li[5]/div/div[2]/span/button').click(); 69 | count = count + 1; 70 | driver.find_element(By.XPATH, '/html/body/div[2]/div/div[2]/div/div[2]/ul/li[6]/div/div[2]/span/button').click(); 71 | count = count + 1; 72 | driver.find_element(By.XPATH, '/html/body/div[2]/div/div[2]/div/div[2]/ul/li[7]/div/div[2]/span/button').click(); 73 | count = count + 1; 74 | driver.find_element(By.XPATH, '/html/body/div[2]/div/div[2]/div/div[2]/ul/li[8]/div/div[2]/span/button').click(); 75 | count = count + 1; 76 | driver.find_element(By.XPATH, '/html/body/div[2]/div/div[2]/div/div[2]/ul/li[9]/div/div[2]/span/button').click(); 77 | count = count + 1; 78 | print(count); 79 | else: 80 | print("Finished"); --------------------------------------------------------------------------------