Coder Social home page Coder Social logo

instabot's Introduction

InstaBot

Bot built for Instagram using Python and Selenium.

This is an Instagram bot that can automate and perform some tasks; makes your task easier. The Bot can show the list of un-followers from you Instagram or it can show your fans and also it can cancel all the pending follow requests which you have already sent before or it can aslo unfollow those who don't follow you back.

Video Demo

Click on the below image to watch video

Instabot

Clone project

First you need to fork and then copy the url from clone option
Run in gitbash or terminal :

$ git clone [url]

Install Python 3

run in terminal :

$ sudo apt-get update
$ sudo apt-get install python3.7

Install PIP

For Windows user

  • Download the git-pip.py by clicking here
  • Run in gitbash or cmd :
$ python get-pip.py
  • Verify by running :
$ pip -V

For linux user

  • Run in terminal :
$ apt install python3-pip
or
$ python get-pip.py     

Install Selenium

Run in terminal or cmd / gitbash

$ pip install selenium
or
$ pip3 install selenium

Add the Path to the code

The path of the webdriver has to changed according to your environment
Replace 18ₜₕ line of file ./program.py with the code snippet given below

linux user

if you are using firefox
self.driver = webdriver.Firefox(executable_path = "./webdrivers/firefox_webdriver/geckodriver-v0.26.0-linux64/geckodriver")
if you are using chrome
self.driver = webdriver.Chrome(executable_path = "./webdrivers/chrome_webdriver/chromedriver_linux64/chromedriver")

Windows user

if you are using firefox
self.driver = webdriver.Firefox(executable_path = ".\\webdrivers\\firefox_webdriver\\geckodriver-v0.26.0-win32\\geckodriver.exe")
if you are using chrome
self.driver = webdriver.Chrome(executable_path = ".\\webdrivers\\chrome_webdrive\\chromedriver_win32\\geckodriver.exe")

Adding Path to the Environment Variable (only for Windows users)

Read the Instruction carefully

Instructions to add path to your Environment variable

  • Copy the path of webdriver which is inside InstaBot folder and add the path to Environment Variable as instructed below
if you are using firefox

Begining of the path will depend on your system and the location you cloned the repo

.....\InstaBot\webdrivers\firefox_webdriver\geckodriver-v0.26.0-win32\

example :

C:\Users\sharan\Downloads\temp\InstaBot\webdrivers\firefox_webdriver\geckodriver-v0.26.0-win32\
if you are using chrome

Begining of the path will depend on your system and the location you cloned the repo

.....\InstaBot\webdrivers\chrome_webdriver\chromedriver_win32\

example :

C:\Users\sharan\Downloads\temp\InstaBot\webdrivers\chrome_webdriver\chromedriver_win32\
  • Then go to This PC -> Right-click -> Properties -> Advanced system setting -> Advanced -> Environment Variables -> User system -> select path -> Edit -> New -> Paste the copied path -> OK
Above instrution in show below






How to add Firefox webdriver path to environment variable

Add firefox webdriver path

How to add chrome webdriver path to environment variable

Add chrome webdriver path

file structure:

.
├── webdriver
│   │
│   ├── chrome_webdriver
│   │   ├── chrome_webdriver_linux64
│   │   │   ├── chromedriver
│   │   │   
│   │   ├── chrome_webdriver_mac64
│   │   │   ├── chromedriver
│   │   │  
│   │   ├── chrome_webdriver_win32
│   │   │   ├── chromedriver.exe
│   │
│   │
│   ├── firefox_webdriver
│   │   ├── geckodriver-v0.26.0-linux64
│   │   │   ├── geckodriver
│   │   │   
│   │   ├── geckodriver-v0.26.0-macos
│   │   │   ├── geckodriver
│   │   │   
│   │   ├── geckodriver-v0.26.0-win32
│   │   │   ├── geckodriver.exe
│   │   │
│   │
│   

Install all the packages

$ pip install -r requirements.txt
or
$ pip install -r requirements.txt

Add username and password

Edit the ./secrets.py file and add your username and password

usr = "[username]" 
pwd = "[password]"

Run the program

Run in terminal or cmd / gitbash

$ python program.py
or
$ python3 program.py

Helpful links

Watch prototype

Add firefox webdriver path

instabot's People

Contributors

autumnlewjb avatar dependabot[bot] avatar swaaz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

instabot's Issues

Is instagram blocking bot ?

Hello , i love your script , it so cool to have make the wait for the elements.

i would like to ask a question. i custom a little bit your bot so i don't have to decide if i want to unfollow someone , it unfollow everyone that don't follow.

but i saw some error in my process .

at one moment i cannot go to the user profile and wait i relaunch the script my follower list is coming back to old one .

Do you think that instagram prevent bot ? (the should)
They can detect if you unfollow to mush people and block it ?

Just wanted to share this : D

ps: we can go directely to the person page with the url, don't need to type in the search bar

TimeoutException(message, screen, stacktrace)

When I run under Linux or MacOS below is the error I received. Account opened by driver pop-up opened for followers and below is the comment and code stop working. Any response?

Enter the choice : 1
Traceback (most recent call last):
File "program.py", line 221, in
main()
File "program.py", line 207, in main
bot.get_unfollowers()
File "program.py", line 95, in get_unfollowers
following = self._get_names()
File "program.py", line 133, in _get_names
self._make_driver_wait("/html/body/div[4]/div/div[2]")
File "program.py", line 191, in _make_driver_wait
wait.until(EC.element_to_be_clickable((By.XPATH, element_to_locate)))
File "/usr/local/lib/python3.8/dist-packages/selenium/webdriver/support/wait.py", line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:

Suggestion for Using Waits and EC instead of sleep

Greetings, I'm a Python and Selenium beginner and I can't let my eye off your code. It's neat and I've learnt plenty. However, I'm curious why did you implement sleep but not waits from Selenium with the help of expected_conditions? I always thought that waits in Selenium may save more time as it checks the DOM or the webpage for the element. Is there any downside of using those? Please correct me if I'm wrong here as I'm still a novice to Selenium and automation. And I'm happy to make a pull request if you like to.

Element <button class="sqdOP L3NKy y3zKF " type="submit"> is not clickable at point (844,379) because another element <div class="piCib"> obscures it

Hey there, I have this strange error. Maybe you can help me?

Traceback (most recent call last): File "C:\Users\user\Downloads\InstaBot-master\program.py", line 240, in <module> main() File "C:\Users\user\Downloads\InstaBot-master\program.py", line 219, in main bot = Instabot(username,password) File "C:\Users\user\Downloads\InstaBot-master\program.py", line 32, in __init__ self.driver.find_element_by_xpath('//button[@type="submit"]').click() File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\webelement.py", line 80, in click self._execute(Command.CLICK_ELEMENT) File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\webelement.py", line 633, in _execute return self._parent.execute(command, params) File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute self.error_handler.check_response(response) File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.ElementClickInterceptedException: Message: Element <button class="sqdOP L3NKy y3zKF " type="submit"> is not clickable at point (844,379) because another element <div class="piCib"> obscures it

Greetings and thanks in advance

After Login Nothing Happens

Traceback (most recent call last):
File "program.py", line 239, in
main()
File "program.py", line 218, in main
bot = Instabot(username,password)
File "program.py", line 35, in init
self._make_driver_wait("//button[contains(text(), 'Not Now')]")
File "program.py", line 209, in _make_driver_wait
wait.until(EC.element_to_be_clickable((By.XPATH, element_to_locate)))
File "/usr/lib/python3/dist-packages/selenium/webdriver/support/wait.py", line 86, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.