Site Loader

Merhaba Arkadaşlar, yeni bir seri ile birlikteyiz bu seride selenium  instagram ve twitter botlarını yazacağız. Serinin ilk ilk dersi olan bu derste selenium ile instagram giriş botu yapacağız.

Selenium Nedir?

Selenium birçok programlama dillerinde kullanılan bir frameworktür. Genel olarak uygulamaları test için kullanılan bir framework’tür. Son zamanlarda özellikle web sitelerinde veri çekmek çok önemli olduğu için web’ten veri çekmek için yetersiz olduğu durumlarda selenium kullanılır. Özellikle dinamik sitelerde. Web’ten  veri çekmek için ençok kullanılan frameworkler ; Beautifulsoup, scrapy gibi kütüphaneler daha çok kullanılır. Sebebi ise selenium bunlara göre daha yavaştır. Ama bazı durumlar bu kütüphaneler yetersiz kalıyor.

Selenium İnstagram Giriş Botu

ilk önce hangi webdriver kullanacaksak onu indiriyoruz. Ben bu seride chrome kullancağım için chromedriver buradan indiriyorum.

İndirdiğim .zip  uzantılı dosyayı  açıyorum ve chromedriver dosyasını buluntuğum proje dizinine taşıyorum.

Dosya yapım şu şekilde olacak.

Şimdi selenium kütüphanesini indirelim.

pip install selenium

Şimdi projeye dahil edelim selenium kütüphanesini. main.py dosyasına

from selenium import webdriver

şimdi driver kullanarak bir browser oluşturuyoruz.

browser = webdriver.Chrome(executable_path='./chromedriver')

evet browser’a açacağımız linki veriyoruz.

link = 'https://www.instagram.com/'
self.browser.get(link)
time.sleep(2)

iki saniye bir bekleme süresi koydum. Çünkü eğer internetiniz kötü ise sayfa geç açılır zaman hatası verebilir veya sayfa içinde alacağımız elementleri görmeyebilir.

Giriş sayfasına gittik elementleri sağ tıklayıp inspect diyoruz. Birden çok yönteme göre alabiliriz.  css_selector, xpath veya isim id’lerine göre.

Biz element isimlerine göre alım  find_element_by_name

userpath = self.browser.find_element_by_name('username')
passwordpath = self.browser.find_element_by_name('password')

şimdi bu input değerlere kendi kullanıcı bilgilerimizi ekliyoruz.

userpath.send_keys(loginInfo.username)
passwordpath.send_keys(loginInfo.password)

İnput elemetleri doldurduğumuza göre artık. Giriş yapalım bunun içi aynı şekilde login buttonun değerini alıyoruz. Bu sefer xpath göre alalım. find_element_by_xpath;

login_btn = self.browser.find_element_by_xpath('/html/body/div[1]/section/main/article/div[2]/div[1]/div/form/div/div[3]/button')
login_btn.click()

Şimdi button tıklama için clik() fonksiyonunu kullanıyoruz. Son olarak profile gidiyoruz.

browser.get('https://www.instagram.com/python_earth')

Tüm kodları görelim.

from selenium import  webdriver
import  time
import loginInfo


def login():
    browser = webdriver.Chrome(executable_path='./chromedriver')
    link = 'https://www.instagram.com/'
    browser.get(link)
    time.sleep(2)

    userpath = browser.find_element_by_name('username')
    passwordpath = browser.find_element_by_name('password')

    userpath.send_keys(loginInfo.username)
    passwordpath.send_keys(loginInfo.password)
    login_btn = browser.find_element_by_xpath('/html/body/div[1]/section/main/article/div[2]/div[1]/div/form/div/div[3]/button')
    login_btn.click()
    time.sleep(3)
    browser.get('https://www.instagram.com/python_earth')

    time.sleep(30)


if __name__ == '__main__':
    login()

 

Selenium Dersleri yazı serisinin ilk dersinde kısaca selenium nedir? Avantajlarını ve dezavantajlarını değindik ve instagram otomatik giriş botu oluşturduk. Bir sonraki dersimizde instagramdan takip ve takipçi listesini çekip buradan geri takipte bulunmayan kişileri bulan bot yazacağız. Eksik veya yanlış gördüğünüz yerler için lütfen iletişime geçmekten çekinmeyin. Bir sonraki yazıda görüşürüz.

 

Post Author: Cahit ISLEYEN

Data Scientist at @embedica.ai

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir