Basit instagram botu

arkadaşlar botun amacı instaya girip sizin takip ettiğiniz ama sizi takip etmeyen hesapları ekrana bastırmak.

Şu şekilde bir kod yazdım ama bu kod hata vermese de istediğim şeyi yapamıyorum.
Bir el atarsanız çok sevinirim.


from selenium import webdriver
import time
import os

url = “https://www.instagram.com
tarayici = webdriver.Chrome()
tarayici.get(url)

time.sleep(1)

username = tarayici.find_element_by_name(“username”)
password = tarayici.find_element_by_name(“password”)
giris_buton = tarayici.find_element_by_xpath("//*[@id=‘loginForm’]/div/div[3]/button/div")
kullanici_adi= “k.adi”
sifre= “sifre”
username.send_keys(kullanici_adi)
password.send_keys(sifre)
giris_buton.click()
time.sleep(4)
tarayici.get(url +"/"+ kullanici_adi)

time.sleep(2)

def Scroll():
jscode = “”"
sayfa = document.querySelector(".isgrP");
sayfa.scrollTo(0,sayfa.scrollHeight);
var sayfaSonu = sayfa.scrollHeight;
return sayfaSonu;
“”"
sayfaSonu = tarayici.execute_script(jscode)
while True:
son = sayfaSonu
time.sleep(3)
sayfaSonu = tarayici.execute_script(jscode)
if son == sayfaSonu:
break

tikla = tarayici.find_element_by_xpath("//*[@id=‘react-root’]/section/main/div/header/section/ul/li[2]/a")
tikla.click()
time.sleep(2)
Scroll()
takipciler = tarayici.find_elements_by_css_selector(".FPmhX.notranslate._0imsa")
time.sleep(3)
carpi = tarayici.find_element_by_xpath("/html/body/div[6]/div/div/div[1]/div/div[2]/button/div")
carpi.click()

tikla = tarayici.find_element_by_xpath("//*[@id=‘react-root’]/section/main/div/header/section/ul/li[3]/a")
tikla.click()
time.sleep(2)
Scroll()
takipedenler = tarayici.find_elements_by_css_selector(".FPmhX.notranslate._0imsa")

kimlertakipetmiyor = (set(takipedenler) - set(takipciler))
sayac = 0
for i in kimlertakipetmiyor:
sayac += 1
print(str(sayac) + “–>” + i.text)

Merhaba,
dediğinize benzer bir proje (Kendi çapında tabi) yapmıştım. Kullandığım tek modül instaloader. Kodların çok fazla gözükmesinin sebebi güzel bir arayüze sahip olsun diye. Onun dışındakileri rahatca anlayacağınızı umuyorum.

Hatta sizi ilgilendiren kısmı şuraya bırakayım:

        self.takipciler_listesi = []
        self.takip_edilenler_listesi = []
        self.takip_etmeyenler = []

        for i in self.takipciler:
            self.takipciler_listesi.append(i.username)
        self.listbox1.insert(END,str(self.takipciler_listesi).replace(",", "\n").replace("['", "").replace("']","").replace("'", ""))
        self.listbox1.pack()

        for j in self.takip_edilenler:
            self.takip_edilenler_listesi.append(j.username)
        self.listbox2.insert(END,str(self.takip_edilenler_listesi).replace(",", "\n").replace("['","").replace("']","").replace("'", ""))
        self.listbox2.pack()

        for i in self.takip_edilenler_listesi:
            if i not in self.takipciler_listesi:
                self.takip_etmeyenler += [i]
        self.listbox3.insert(END,str(self.takip_etmeyenler).replace(",", "\n").replace("['","").replace("']", "").replace("'", ""))
        self.listbox3.pack()

listbox yazanlara aldanmayın üstte belirttiğim gibi yalnızca arayüzde gözüksün diye.

2 Beğeni

Hocam çok teşekkür ederim. Ben instaloader modülünden bihaberdim şu an sizin sayenizde modül hakkında biraz araştırma yaptım. Sanırım benim yapmaya çalıştığım yöntemle bu iş olmayacak gibi.

1 Beğeni