
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.