Python Instagram GraphQL API Çekiliş Scripti

iş yerindeki arkadaşların instagram gönderisine yorum yapan kullanıcıları çekmek için ücretsiz kullandığı bir servis ücretli sürüme geçiş yapmış. onun yerine graphql üzerinden iterasyon yaparak 50 verilik setler halinde gönderi bilgilerini çekip kullanıcı adlarını toparlayan ufak bir kod hazırladım.
kodu düzenleyip kullanıcı adı dışındaki değişkenleri de çekebilirsiniz.
kısa süre içerisinde yetiştirmemiz gerektiğinden selenium kullandım onun yerine farklı bir kütüphane kullanırsanız daha performanslı olabilir.
bizim işimizi görmüştü , umarım birine daha faydası dokunur.

kodlar aşağıda.

github link : https://github.com/nicxstyle/instagramgraphql

"""
@author: nicxstyle
www.burakgultekin.com.tr
"""
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
import json
import requests


driver_path = r"C:\Users\then1cx\Desktop\chromedriver.exe" ## chrome driver path
browser = webdriver.Chrome(executable_path=driver_path)

browser.get("https://www.instagram.com/accounts/login/?source=auth_switcher")
time.sleep(2)
username = "then1cx" ## kullanıcı adı
password = "illmind" ## şifre
 
browser.find_element_by_xpath("//input[@name='username']").send_keys(username)
browser.find_element_by_xpath("//input[@name='password']").send_keys(password)
browser.find_element_by_xpath("//button[contains(.,'Giriş Yap')]").click()

time.sleep(2)
##post shortcode tanımlanan alan. eğer postun linki bu ise  https://www.instagram.com/p/CECXW9bsRzo/ , shortcode budur CECXW9bsRzo
shortcode = "CECXW9bsRzo"
url = 'https://www.instagram.com/graphql/query/?query_hash=33ba35852cb50da46f5b5e889df7d159&variables=%7B"shortcode":"'+shortcode+'","first":50,"after":"0"%7D'
r = requests.get(url)
data = json.loads(r.text)

end_cursor = data['data']['shortcode_media']['edge_media_to_comment']['page_info']['end_cursor']

def fetch_data(shortcode,token):
    url = 'https://www.instagram.com/graphql/query/?query_hash=33ba35852cb50da46f5b5e889df7d159&variables=%7B"shortcode":"'+shortcode+'","first":50,"after":"'+token+'"%7D'
    r = requests.get(url)
    b = json.loads(r.text)
    cursor = b['data']['shortcode_media']['edge_media_to_comment']['page_info']['end_cursor']
    data = b['data']['shortcode_media']['edge_media_to_comment']['edges']
    for x in data:
        ## bu kullanıcı adını verir
        a=x['node']['owner']['username']
        print(a)
    while cursor != "null":
       return fetch_data(shortcode,cursor)

fetch_data(shortcode,"0")

 

Özet
Python Instagram GraphQL Çekiliş Scripti
Article Name
Python Instagram GraphQL Çekiliş Scripti
Description
Instagram Graphql api üzerinden herhangi bir instagram gönderisiyle etkileşime girenlerin bilgilerini çektiğim scripti paylaşıyorum.
Author
Publisher Name
Burak Gültekin
Publisher Logo

One thought on “Python Instagram GraphQL API Çekiliş Scripti

  1. habib

    Merhaba vermiş olduğunuz kodları çalıştırdığımda keyError: data şeklinde bir hata alıyorum, sebebini bulamadım yardımcı olmanız mümkün mü? İnstagrama giriş yaptırıyorum fakat yorumları çekme noktasında sorun yaşıyorum.

    Reply

Bir Cevap Yazın

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