Python Instagram otomatik indirme botu yapmak

Jon Werman

Decapat
Katılım
23 Kasım 2021
Mesajlar
16
Daha fazla  
Cinsiyet
Erkek
Arkadaşlar ben yazılımcı değilim. Ancak internet üzerinde arayıp bulamadığım bir otomasyon sistemine ihtiyacım var. Botun yapmasını istediğim şey tam olarak şu;
Ben genelde Instagram'da telefonum üzerinden kişisel hesabım ile geziyorum. Instagram'da bir adet yan hesap açıp botu o hesaba bağlayacağım. Bu bot PC'de arka planda sürekli açık kalacak. İstiyorum ki ben kişisel hesabımda gezerken gördüğüm hoşuma giden Reels videolarını botun bağlı olduğu bu yan hesaba DM üzerinden göndereyim. Bot da sürekli arkada açık duracağı için ben videoları gönderir göndermez, bilgisayarda seçtiğim bir klasöre (1, 2, 3, 4) diye isimlendirerek sırayla indirip kaydetsin. Kısacası temel amacım botun ona DM yoluyla gönderdiğim videoları sıralayarak PC'ye indirmesi... Çünkü elimle tek tek indirmek çok zaman alıyor. Kendim biraz denedim. VS Code üzerinde Selenium kütüphanesi ile yapmaya çalıştım ve botun Chrome'u açıp daha sonra Instagram DM kutuma kadar girmesini sağladım fakat videoları indirmesini sağlayamadım. Kendi denediğim kodu aşağıda paylaşacağım, konu hakkında bilgi sahibi arkadaşlar bana bu konuda yardım ederse çok memnun olurum beni gerçekten çok büyük zahmetten ve zaman kaybından kurtarırsınız :)

Kendi denediğim kod:

İmport Selenium.
From Selenium import webdriver.
From Selenium. Webdriver.common. By import by.
İmport time.
İmport OS.
İmport requests.
# Webdriver'ı başlat.
Driver = webdriver.Chrome()
# Instagram'a giriş yap.
Driver. Get("Login • Instagram")
Time. Sleep(2) # sayfanın yüklenmesini bekle.
Username = "kullanıcı_adı"
Password = "şifre"
Driver. Find_element(by. Name, "username").send_keys(username)
Driver. Find_element(by. Name, "password").send_keys(password)
Driver. Find_element(by. Xpath, '//button[@type="submit"]').click()
Time. Sleep(5) # girişin tamamlanmasını bekle.
# DM'leri kontrol et.
Driver. Get("Login • Instagram")
Time. Sleep(3) # sayfanın yüklenmesini bekle.
# İndirilecek videoları tutacak klasörü oluştur.
Download_folder = "botındirilen"
OS. Makedirs(download_folder, exist_ok = true)
# DM'leri kontrol et.
While true:
Try:
# DM'leri aç.
Driver. Get("kişisel hesabımdan gelenlerin DM kutusunun linki")
Time. Sleep(3) # DM'lerin yüklenmesini bekle.
# Tüm DM'leri al.
Messages = driver. Find_elements(by. Xpath, '//div[contains(@Class, "N9abW")]')

For I, message in enumerate(messages):
# DM'in içeriğini aç.
message.click()
Time. Sleep(2) # DM içeriğinin yüklenmesini bekle.

# Videoyu indir.
Video = driver. Find_element(by. Tag_name, 'video')
Video_url = video. Get_attribute("src")
İf video_url:
# Videoyu indir ve numaralandırarak kaydet.
Video_name = F"video_{i+1}.MP4"
Response = requests. Get(video_url)
With open(OS. Path. Join(download_folder, video_name), "wb") as F:
F. Write(response. Content)
Print(F"video {i+1} indirildi.")
Else:
Print("video bulunamadı.")
# DM içeriğini kapat.
Driver. Find_element(by. Xpath, '//button[text()="Kapat"]').click()
Time. Sleep(2) # DM içeriğinin kapanmasını bekle.
# Sonraki DM sayfasına geç.
Next_button = driver. Find_element(by. Xpath, '//button[text()="Sonraki"]')
next_button.click()
Time. Sleep(3) # sayfanın yüklenmesini bekle.
Except exception as e:
Print(e)
Break.
 

Yeni konular

Geri
Yukarı