get my instagram follower list with selenium

Question:

I’m beginner on programming. I trying get my Instagram follower list but i have just 12 follower. I tried firstly click to box and scroll down but it didn’t work.

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
import time
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
url= "https://www.instagram.com/"
driver.get(url)
time.sleep(1)

kullaniciAdiGir = driver.find_element(By.XPATH, "//*[@id='loginForm']/div/div[1]/div/label/input"")
kullaniciAdiGir.send_keys("USERNAME")

sifreGir = driver.find_element(By.XPATH, "//input[@name='password']")
sifreGir.send_keys("PASS")

girisButonu = driver.find_element(By.XPATH, "//*[@id='loginForm']/div/div[3]/button/div").click()

time.sleep(5)

driver.get(url="https://www.instagram.com/USERNAME/")

time.sleep(3)

kutucuk= driver.get(url="https://www.instagram.com/USERNAME/followers/")

time.sleep(5)

box =driver.find_element(By.XPATH, "//div[@class='xs83m0k xl56j7k x1iy3rx x1n2onr6 x1sy10c2 x1h5jrl4 xieb3on xmn8rco x1hfn5x7 x13wlyjk x1v7wizp x1l0w46t xa3vuyk xw8ag78']")

box.click()
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    
time.sleep(5)

takipciler = driver.find_elements(By.CSS_SELECTOR, "._ab8y._ab94._ab97._ab9f._ab9k._ab9p._abcm")

for takipci in takipciler:
    print(takipci.text)

time.sleep(10)

How can i fix it? How can scroll down in box? Thanks

Asked By: Onur

||

Answers:

You can select multiple elements with this.

#get all followers
followers = driver.find_elements(By.CSS_SELECTOR, "._ab8y._ab94._ab97._ab9f._ab9k._ab9p._abcm")
# loop each follower
for user in followers:
    #do something here.

Using css selectors, in my opinion, is much easier.

Also note I used find_elemets not find_element, as the latter only returns a single result.

As the data is loaded dynamically, you will, infact have to scroll to make the site load more results. Then compare what you have agaisnt whats loaded. Probably execute some javascrtipt like scroll into view on the last element in that container etc.

or take a look here for an alternative solution

https://www.folkstalk.com/2022/10/how-to-get-a-list-of-followers-on-instagram-python-with-code-examples.html

or look at instragrams API, probably something in there for getting your followers.

Answered By: Lewis Morris
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.