Python Selenium ile Instagram takipçi listesini çekmek

sancak146

Hectopat
Katılım
3 Mayıs 2019
Mesajlar
46
Merhaba buradaki bağlantıda Instagram loginini otomatikleştirme işlemini halledebilmiştim şimdi bir kullanıcının takipçilerinin isimlerini çekmeyi planlıyorum şöyle bir yöntem izledim fakat daha iyi bir yöntem olabilir mi diye sizlere danışmak istedim.

Python:
from selenium import webdriver
import time

url = "https://www.instagram.com/"

username = "testuser"
password = "pwd123"

driver = webdriver.Chrome()
driver.maximize_window()

driver.get(url)
time.sleep(2)

driver.find_element("xpath", "//*[@id='loginForm']/div/div[1]/div/label/input").send_keys(username)
driver.find_element("xpath", "//*[@id='loginForm']/div/div[2]/div/label/input").send_keys(password)
time.sleep(1)

driver.find_element("xpath", "//*[@id='loginForm']/div/div[3]/button/div").click()
time.sleep(2)

def getFollowers():
    time.sleep(10)
    driver.get(f"https://www.instagram.com/{username}")
    time.sleep(2)

    followersLink = driver.find_element("xpath","/html/body/div[1]/div/div/div/div[1]/div/div/div/div[1]/section/main/div/header/section/ul/li[2]/a/div")
    followersLink.click()
    time.sleep(2)   

    for i in range(1,13):
        if(i%2):
            follower = driver.find_element("xpath",f"/html/body/div[1]/div/div/div/div[2]/div/div/div[1]/div/div[2]/div/div/div/div/div[2]/div/div/div[2]/div[1]/div/div[{i}]"        +"/div[2]/div"+        "/div/div/span/a/span/div").text
            print(follower)
        else:
            follower = driver.find_element("xpath",f"/html/body/div[1]/div/div/div/div[2]/div/div/div[1]/div/div[2]/div/div/div/div/div[2]/div/div/div[2]/div[1]/div/div[{i}]"        +"/div[2]/div[1]"+        "/div/div/span/a/span/div").text
            print(follower)

getFollowers()

Takipçilerin adlarını listeyen getFollowers() fonksiyonu içerisinde yaptığım işlem gözüküyor çekebildiği takipçi 13 kişi ile sınırlı şimdilik.
 
Merhaba buradaki bağlantıda Instagram loginini otomatikleştirme işlemini halledebilmiştim şimdi bir kullanıcının takipçilerinin isimlerini çekmeyi planlıyorum şöyle bir yöntem izledim fakat daha iyi bir yöntem olabilir mi diye sizlere danışmak istedim.

Python:
from selenium import webdriver.
import time.

url = "https://www.instagram.com/"

username = "testuser"
password = "pwd123"

driver = webdriver.Chrome()
driver.maximize_window()

driver.get(url)
time.sleep(2)

driver.find_element("xpath", "//*[@id='loginForm']/div/div[1]/div/label/input").send_keys(username)
driver.find_element("xpath", "//*[@id='loginForm']/div/div[2]/div/label/input").send_keys(password)
time.sleep(1)

driver.find_element("xpath", "//*[@id='loginForm']/div/div[3]/button/div").click()
time.sleep(2)

def getFollowers():
 time.sleep(10)
 driver.get(f"https://www.instagram.com/{username}")
 time.sleep(2)

 followersLink = driver.find_element("xpath","/html/body/div[1]/div/div/div/div[1]/div/div/div/div[1]/section/main/div/header/section/ul/li[2]/a/div")
 followersLink.click()
 time.sleep(2)

 for i in range(1,13):
 if(i%2):
 follower = driver.find_element("xpath",f"/html/body/div[1]/div/div/div/div[2]/div/div/div[1]/div/div[2]/div/div/div/div/div[2]/div/div/div[2]/div[1]/div/div[{i}]" +"/div[2]/div"+ "/div/div/span/a/span/div").text
 print(follower)
 else:
 follower = driver.find_element("xpath",f"/html/body/div[1]/div/div/div/div[2]/div/div/div[1]/div/div[2]/div/div/div/div/div[2]/div/div/div[2]/div[1]/div/div[{i}]" +"/div[2]/div[1]"+ "/div/div/span/a/span/div").text
 print(follower)

getFollowers()

Takipçilerin adlarını listeyen getFollowers() fonksiyonu içerisinde yaptığım işlem gözüküyor çekebildiği takipçi 13 kişi ile sınırlı şimdilik.

Elinize sağlık.
 
Merhabalar, gerçekleştirmek istediğim ama bir türlü gerçekleştiremediğim bir fikir var ve belki siz gerçekleştirebilirsiniz diye bir fikir ortaya atmak istiyorum. Fikrim ise eski instagram hesabında kaydedilen gönderilerin hepsini video olarak indirmek (tek seferde yani ve mp4 formatı vs.) ya da olabilirse hepsini yeni hesaba direkt toplu bir şekilde kaydetmek. Ama gizli hesaplar vs. olduğu için toplu bir şekilde kaydetme olayı pek mantıklı değil farkındayım.
 
Bir sene önce şunu yazmıştım, sorunsuz çalışıyordu fakat büyük ihtimalle güncellemediğim için şuan çalışmıyordur.


Source Github
 
Elinize sağlık.

Teşekkür ederim.

Merhaba, gerçekleştirmek istediğim ama bir türlü gerçekleştiremediğim bir fikir var ve belki siz gerçekleştirebilirsiniz diye bir fikir ortaya atmak istiyorum. Fikrim ise eski Instagram hesabında kaydedilen gönderilerin hepsini video olarak indirmek (tek seferde yani ve MP4 formatı vs.) Ya da olabilirse hepsini yeni hesaba direkt toplu bir şekilde kaydetmek. Ama gizli hesaplar vs. olduğu için toplu bir şekilde kaydetme olayı pek mantıklı değil farkındayım.

Kendinize ait bir hesap ya da gizli olmayan bir hesapta gönderileri çekmek mümkün bence, o zaman gönderileri otomatikleştirmekte mümkün olabilir gibi geliyor.

Bir sene önce şunu yazmıştım, sorunsuz çalışıyordu fakat büyük ihtimalle güncellemediğim için şu an çalışmıyordur.

Source Github

Daha kapsamlı olmuş sizin çalışma inceleyeceğim, sürekli güncellemek gerekiyor sanırım Instagram çünkü değişiklikler yapıyor sanırım bundan etkileniyor yazdığımız kodlar.
 
Teşekkür ederim.



Kendinize ait bir hesap ya da gizli olmayan bir hesapta gönderileri çekmek mümkün bence, o zaman gönderileri otomatikleştirmekte mümkün olabilir gibi geliyor.



Daha kapsamlı olmuş sizin çalışma inceleyeceğim, sürekli güncellemek gerekiyor sanırım Instagram çünkü değişiklikler yapıyor sanırım bundan etkileniyor yazdığımız kodlar.
Evet, en azından benim kullandığım yöntem o şekildeydi. O dönemde sürekli güncellemeden kaçmaya çalıştım fakat çözüm bulamadım.
 
Kendinize ait bir hesap ya da gizli olmayan bir hesapta gönderileri çekmek mümkün bence, o zaman gönderileri otomatikleştirmekte mümkün olabilir gibi geliyor.
Kendim böyle bir şeyi beceremeyeceğimi bildiğim için ve siz birazcık benzer bir projeyi yaptığınız için belki yapabilirsiniz veya daha da geliştirebilirsiniz diye söyledim.
 
Güzel olmuş elinize sağlık. Çok üşeniyorum Selenium ile bir şeyler yapmaya. XPATH'ten tut elementlerin yüklenmesini handle etmesi bile dert. Bir de sitede ufacık güncelleme yapsalar tüm kodun bozulabiliyor. İşkence gibi bir şey.
 
Kendim böyle bir şeyi beceremeyeceğimi bildiğim için ve siz birazcık benzer bir projeyi yaptığınız için belki yapabilirsiniz veya daha da geliştirebilirsiniz diye söyledim.

Teşekkür ederim sonraki aşamalarda gönderi çekme ve yükleme gibi işlemleri deneyeceğim.

Güzel olmuş elinize sağlık. Çok üşeniyorum Selenium ile bir şeyler yapmaya. Xpath'ten tut elementlerin yüklenmesini handle etmesi bile dert. Bir de sitede ufacık güncelleme yapsalar tüm kodun bozulabiliyor. İşkence gibi bir şey.

Teşekkür ederim gerçekten öyle Selenium işkence, alternatifi var mı henüz bilmiyorum ayrıca Instagram sanırım bunu zorlaştırmak için de çaba içinde :)
 
@sancak146 Selenium yerine playwright kullanabilirsiniz, daha yeni bir framework fakat selenium'a göre daha hızlı ve kolay bence. Deneyimlediğim kadarıyla yazması da daha keyifli. Github'a bir kaç tane örnek yüklemiştim, onları inceleyebilirsiniz.
 

Geri
Yukarı