Elimden geldiğince kodları açık ve yorumlu yazmaya çalıştım. Gereksiz yazdığım kodlar olabilir tek tek araştırmadım. Sessions ile bir çok şey yapabilirsiniz bu onlardan sadece birisi.
Kod hakkındaki sorularınızı sorabilirsiniz ancak nasıl çalıştırırım veya "açtım böyle hata verdi" gibi sorulara cevap vermeyeceğim. Bu kod eğitim amaçlı pratik değil.
Programı aşağıdaki link ile indiriniz!
https://github.com/tarik0/sessions-instagram-dersi/blob/master/iua.py
Kod hakkındaki sorularınızı sorabilirsiniz ancak nasıl çalıştırırım veya "açtım böyle hata verdi" gibi sorulara cevap vermeyeceğim. Bu kod eğitim amaçlı pratik değil.
Programı aşağıdaki link ile indiriniz!
https://github.com/tarik0/sessions-instagram-dersi/blob/master/iua.py
Kod:
[COLOR=#d4d4d4][FONT=Droid Sans Mono][COLOR=#6a9955]# -*- coding: utf-8 -*-[/COLOR]
[COLOR=#c586c0]try[/COLOR][COLOR=#d4d4d4]:[/COLOR]
[COLOR=#c586c0]from[/COLOR][COLOR=#d4d4d4] requests [/COLOR][COLOR=#c586c0]import[/COLOR][COLOR=#d4d4d4] Session[/COLOR]
[COLOR=#c586c0]except[/COLOR][COLOR=#d4d4d4]:[/COLOR]
[COLOR=#dcdcaa]print[/COLOR][COLOR=#d4d4d4]([/COLOR][COLOR=#ce9178]"[-] 'requests' Modülünüz yüklü değil yüklemek için; pip install requests"[/COLOR][COLOR=#d4d4d4])[/COLOR]
[COLOR=#c586c0]try[/COLOR][COLOR=#d4d4d4]:[/COLOR]
[COLOR=#c586c0]from[/COLOR][COLOR=#d4d4d4] random [/COLOR][COLOR=#c586c0]import[/COLOR][COLOR=#d4d4d4] choice[/COLOR]
[COLOR=#c586c0]except[/COLOR][COLOR=#d4d4d4]:[/COLOR]
[COLOR=#dcdcaa]print[/COLOR][COLOR=#d4d4d4]([/COLOR][COLOR=#ce9178]"[-] 'random' Modülünüz yüklü değil? Python indiridğinize emin misiniz? Yüklemek için; pip install requests"[/COLOR][COLOR=#d4d4d4])[/COLOR]
[COLOR=#c586c0]from[/COLOR][COLOR=#d4d4d4] requests [/COLOR][COLOR=#c586c0]import[/COLOR][COLOR=#d4d4d4] Session[/COLOR]
[COLOR=#c586c0]from[/COLOR][COLOR=#d4d4d4] random [/COLOR][COLOR=#c586c0]import[/COLOR][COLOR=#d4d4d4] choice[/COLOR]
[COLOR=#ce9178]"""[/COLOR]
[COLOR=#ce9178]Requestlerimizde kullanacağımız User-Agent'leri buraya koyuyorum.[/COLOR]
[COLOR=#ce9178]Arasından rastgele bir tanesini seçip onu kullanacağım.[/COLOR]
[COLOR=#ce9178]"""[/COLOR]
[COLOR=#d4d4d4]USER_AGENTS [/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#d4d4d4] [[/COLOR][COLOR=#ce9178]"Mozilla/5.0 (Android 4.4; Mobile; rv:41.0) Gecko/41.0 Firefox/41.0"[/COLOR][COLOR=#d4d4d4],[/COLOR]
[COLOR=#ce9178]"Mozilla/5.0 (Windows NT x.y; rv:10.0) Gecko/20100101 Firefox/10.0"[/COLOR][COLOR=#d4d4d4],[/COLOR]
[COLOR=#ce9178]"Mozilla/5.0 (Windows NT x.y; Win64; x64; rv:10.0) Gecko/20100101 Firefox/10.0"[/COLOR][COLOR=#d4d4d4],[/COLOR]
[COLOR=#ce9178]"Mozilla/5.0 (Windows NT x.y; WOW64; rv:10.0) Gecko/20100101 Firefox/10.0"[/COLOR][COLOR=#d4d4d4],[/COLOR]
[COLOR=#ce9178]"Mozilla/5.0 (Macintosh; Intel Mac OS X x.y; rv:10.0) Gecko/20100101 Firefox/10.0"[/COLOR][COLOR=#d4d4d4],[/COLOR]
[COLOR=#ce9178]"Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20100101 Firefox/10.0"[/COLOR][COLOR=#d4d4d4],[/COLOR]
[COLOR=#ce9178]"Mozilla/5.0 (Android; Mobile; rv:40.0) Gecko/40.0 Firefox/40.0"[/COLOR][COLOR=#d4d4d4]][/COLOR]
[COLOR=#ce9178]"""[/COLOR]
[COLOR=#ce9178]Opener Sınıfı Argümanları:[/COLOR]
[COLOR=#ce9178] args:[/COLOR]
[COLOR=#ce9178] email: E-Posta adresi.[/COLOR]
[COLOR=#ce9178] full_name: Tam isim.[/COLOR]
[COLOR=#ce9178] username: Kullanıcı adı.[/COLOR]
[COLOR=#ce9178] password: Şifre.[/COLOR]
[COLOR=#ce9178] proxy: SSL Destekli HTTPS Proxy'si[/COLOR]
[COLOR=#ce9178]Proxy Format Örneği: 1.1.1.1:8080[/COLOR]
[COLOR=#ce9178]Eğer proxy'siz açmak istiyorsanız "proxy"[/COLOR]
[COLOR=#ce9178]değerini "None" yapmalısınız.[/COLOR]
[COLOR=#ce9178]"""[/COLOR]
[COLOR=#569cd6]class[/COLOR][COLOR=#4ec9b0]Opener[/COLOR][COLOR=#d4d4d4]:[/COLOR]
[COLOR=#569cd6]def[/COLOR][COLOR=#dcdcaa]__init__[/COLOR][COLOR=#d4d4d4]([/COLOR][COLOR=#9cdcfe]self[/COLOR][COLOR=#d4d4d4],[/COLOR][COLOR=#9cdcfe]args[/COLOR][COLOR=#d4d4d4]):[/COLOR]
[COLOR=#ce9178]"""[/COLOR]
[COLOR=#ce9178] Argümanların yeterliliğini onaylamak için "next_stage" isimli[/COLOR]
[COLOR=#ce9178] bir bool oluşturuyorum eğer sınıfa verilen argümanlar yetersiz[/COLOR]
[COLOR=#ce9178] ise "next_stage" değişkeni "False" olup hesap oluşturma bölümüne[/COLOR]
[COLOR=#ce9178] geçemeyecek.[/COLOR]
[COLOR=#ce9178] """[/COLOR]
[COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].next_stage [/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#569cd6]True[/COLOR]
[COLOR=#c586c0]if[/COLOR][COLOR=#d4d4d4] (args[[/COLOR][COLOR=#ce9178]"email"[/COLOR][COLOR=#d4d4d4]] [/COLOR][COLOR=#d4d4d4]==[/COLOR][COLOR=#569cd6]None[/COLOR][COLOR=#d4d4d4]):[/COLOR]
[COLOR=#dcdcaa]print[/COLOR][COLOR=#d4d4d4]([/COLOR][COLOR=#ce9178]"[-] Lütfen bir e-posta giriniz!"[/COLOR][COLOR=#d4d4d4])[/COLOR]
[COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].next_stage [/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#569cd6]False[/COLOR]
[COLOR=#c586c0]if[/COLOR][COLOR=#d4d4d4] (args[[/COLOR][COLOR=#ce9178]"username"[/COLOR][COLOR=#d4d4d4]] [/COLOR][COLOR=#d4d4d4]==[/COLOR][COLOR=#569cd6]None[/COLOR][COLOR=#d4d4d4]):[/COLOR]
[COLOR=#dcdcaa]print[/COLOR][COLOR=#d4d4d4]([/COLOR][COLOR=#ce9178]"[-] Lütfen bir kullanıcı adı giriniz!"[/COLOR][COLOR=#d4d4d4])[/COLOR]
[COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].next_stage [/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#569cd6]False[/COLOR]
[COLOR=#c586c0]if[/COLOR][COLOR=#d4d4d4] (args[[/COLOR][COLOR=#ce9178]"full_name"[/COLOR][COLOR=#d4d4d4]] [/COLOR][COLOR=#d4d4d4]==[/COLOR][COLOR=#569cd6]None[/COLOR][COLOR=#d4d4d4]):[/COLOR]
[COLOR=#dcdcaa]print[/COLOR][COLOR=#d4d4d4]([/COLOR][COLOR=#ce9178]"[-] Lütfen bir tam isim giriniz!"[/COLOR][COLOR=#d4d4d4])[/COLOR]
[COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].next_stage [/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#569cd6]False[/COLOR]
[COLOR=#c586c0]if[/COLOR][COLOR=#d4d4d4] (args[[/COLOR][COLOR=#ce9178]"password"[/COLOR][COLOR=#d4d4d4]] [/COLOR][COLOR=#d4d4d4]==[/COLOR][COLOR=#569cd6]None[/COLOR][COLOR=#d4d4d4]):[/COLOR]
[COLOR=#dcdcaa]print[/COLOR][COLOR=#d4d4d4]([/COLOR][COLOR=#ce9178]"[-] Lütfen bir şifre giriniz!"[/COLOR][COLOR=#d4d4d4])[/COLOR]
[COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].next_stage [/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#569cd6]False[/COLOR]
[COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].username [/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#d4d4d4] args[[/COLOR][COLOR=#ce9178]"username"[/COLOR][COLOR=#d4d4d4]][/COLOR]
[COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].full_name [/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#d4d4d4] args[[/COLOR][COLOR=#ce9178]"full_name"[/COLOR][COLOR=#d4d4d4]][/COLOR]
[COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].password [/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#d4d4d4] args[[/COLOR][COLOR=#ce9178]"password"[/COLOR][COLOR=#d4d4d4]][/COLOR]
[COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].email [/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#d4d4d4] args[[/COLOR][COLOR=#ce9178]"email"[/COLOR][COLOR=#d4d4d4]][/COLOR]
[COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].requestNumber [/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#b5cea8]0[/COLOR]
[COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].user_agent [/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#d4d4d4] choice(USER_AGENTS)[/COLOR]
[COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].ses [/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#d4d4d4] Session()[/COLOR]
[COLOR=#d4d4d4] ipcheck_response [/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].ses.get([/COLOR][COLOR=#ce9178]"https://api.ipify.org?format=json"[/COLOR][COLOR=#d4d4d4])[/COLOR]
[COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].normalip [/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#d4d4d4] ipcheck_response.json()[[/COLOR][COLOR=#ce9178]"ip"[/COLOR][COLOR=#d4d4d4]][/COLOR]
[COLOR=#c586c0]if[/COLOR][COLOR=#d4d4d4] (args[[/COLOR][COLOR=#ce9178]"proxy"[/COLOR][COLOR=#d4d4d4]] [/COLOR][COLOR=#d4d4d4]!=[/COLOR][COLOR=#569cd6]None[/COLOR][COLOR=#d4d4d4]):[/COLOR]
[COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].proxy [/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#d4d4d4] args[[/COLOR][COLOR=#ce9178]"proxy"[/COLOR][COLOR=#d4d4d4]][/COLOR]
[COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].ses.proxies.update({[/COLOR]
[COLOR=#ce9178]"https"[/COLOR][COLOR=#d4d4d4]:[/COLOR][COLOR=#ce9178]"https://"[/COLOR][COLOR=#d4d4d4]+[/COLOR][COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].proxy,[/COLOR]
[COLOR=#d4d4d4] })[/COLOR]
[COLOR=#c586c0]try[/COLOR][COLOR=#d4d4d4]:[/COLOR]
[COLOR=#d4d4d4] ipcheck_response [/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].ses.get([/COLOR][COLOR=#ce9178]"https://api.ipify.org?format=json"[/COLOR][COLOR=#d4d4d4])[/COLOR]
[COLOR=#d4d4d4] proxyip [/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#d4d4d4] ipcheck_response.json()[[/COLOR][COLOR=#ce9178]"ip"[/COLOR][COLOR=#d4d4d4]][/COLOR]
[COLOR=#c586c0]if[/COLOR][COLOR=#d4d4d4] (proxyip [/COLOR][COLOR=#d4d4d4]==[/COLOR][COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].normalip):[/COLOR]
[COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].next_stage [/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#569cd6]False[/COLOR]
[COLOR=#c586c0]except[/COLOR][COLOR=#4ec9b0]Exception[/COLOR][COLOR=#c586c0]as[/COLOR][COLOR=#d4d4d4] e:[/COLOR]
[COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].next_stage [/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#569cd6]False[/COLOR]
[COLOR=#c586c0]if[/COLOR][COLOR=#d4d4d4] ([/COLOR][COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].next_stage [/COLOR][COLOR=#d4d4d4]==[/COLOR][COLOR=#569cd6]False[/COLOR][COLOR=#d4d4d4]):[/COLOR]
[COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].ses.close()[/COLOR]
[COLOR=#569cd6]def[/COLOR][COLOR=#dcdcaa]UpdateHeaders[/COLOR][COLOR=#d4d4d4]([/COLOR][COLOR=#9cdcfe]self[/COLOR][COLOR=#d4d4d4]):[/COLOR]
[COLOR=#ce9178]"""[/COLOR]
[COLOR=#ce9178] Session'umuzda kullanacağımız headerleri tek tek[/COLOR]
[COLOR=#ce9178] ayarlamak yerine direk bu fonksiyon ile ayarlamak[/COLOR]
[COLOR=#ce9178] istedim.[/COLOR]
[COLOR=#ce9178] Bu headerleri nerden buldum derseniz öncelikle instagram'a[/COLOR]
[COLOR=#ce9178] yeni bir hesap ile kayıt oldum ve gelen requestleri inceledim[/COLOR]
[COLOR=#ce9178] bunu siz de Öğeyi denetle'den Network veya Ağ yazan yerde inceleye-[/COLOR]
[COLOR=#ce9178] bilirsiniz.[/COLOR]
[COLOR=#ce9178] Header'leri yazarken dikkat etmelisiniz tek yazım hatası yaptığınız[/COLOR]
[COLOR=#ce9178] request'leri bozabilir.[/COLOR]
[COLOR=#ce9178] Content-Length ve Cookie gibi gerekli olmayan header'leri[/COLOR]
[COLOR=#ce9178] koymak zorunda değilsiniz. Cookie önemli gibi görünebilir[/COLOR]
[COLOR=#ce9178] ama zaten Cookie'lerimize kolayca erişebiliyorlar.[/COLOR]
[COLOR=#ce9178] Buradaki çoğu header'in ne anlama geldiğini Mozilla'nın sitesinden[/COLOR]
[COLOR=#ce9178] bakabilirsiniz.[/COLOR]
[COLOR=#ce9178] X-Instagram-AJAX Yapılan requestlerin sayısıyla ilgili bir şey[/COLOR]
[COLOR=#ce9178] galiba o yüzden hep sayıyı hep aynı tutmak istemiyorum.[/COLOR]
[COLOR=#ce9178] """[/COLOR]
[COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].requestNumber [/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].requestNumber [/COLOR][COLOR=#d4d4d4]+[/COLOR][COLOR=#b5cea8]1[/COLOR]
[COLOR=#d4d4d4] headers [/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#d4d4d4] {[/COLOR]
[COLOR=#ce9178]"Accept"[/COLOR][COLOR=#d4d4d4]:[/COLOR][COLOR=#ce9178]"*/*"[/COLOR][COLOR=#d4d4d4],[/COLOR]
[COLOR=#ce9178]"Accept-Encoding"[/COLOR][COLOR=#d4d4d4]:[/COLOR][COLOR=#ce9178]"gzip,deflate,br"[/COLOR][COLOR=#d4d4d4],[/COLOR]
[COLOR=#ce9178]"Accept-Language"[/COLOR][COLOR=#d4d4d4]:[/COLOR][COLOR=#ce9178]"en-US,en;q=0.5"[/COLOR][COLOR=#d4d4d4],[/COLOR]
[COLOR=#ce9178]"Connection"[/COLOR][COLOR=#d4d4d4]:[/COLOR][COLOR=#ce9178]"keep-alive"[/COLOR][COLOR=#d4d4d4],[/COLOR]
[COLOR=#ce9178]"Content-Type"[/COLOR][COLOR=#d4d4d4]:[/COLOR][COLOR=#ce9178]"application/x-www-form-urlencoded"[/COLOR][COLOR=#d4d4d4],[/COLOR]
[COLOR=#ce9178]"DNT"[/COLOR][COLOR=#d4d4d4]:[/COLOR][COLOR=#ce9178]"1"[/COLOR][COLOR=#d4d4d4],[/COLOR]
[COLOR=#ce9178]"Host"[/COLOR][COLOR=#d4d4d4]:[/COLOR][COLOR=#ce9178]"www.instagram.com"[/COLOR][COLOR=#d4d4d4],[/COLOR]
[COLOR=#ce9178]"Referer"[/COLOR][COLOR=#d4d4d4]:[/COLOR][COLOR=#ce9178]"https://www.instagram.com/accounts/emailsignup/"[/COLOR][COLOR=#d4d4d4],[/COLOR]
[COLOR=#ce9178]"TE"[/COLOR][COLOR=#d4d4d4]:[/COLOR][COLOR=#ce9178]"Trailers"[/COLOR][COLOR=#d4d4d4],[/COLOR]
[COLOR=#ce9178]"User-Agent"[/COLOR][COLOR=#d4d4d4]:[/COLOR][COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].user_agent,[/COLOR]
[COLOR=#ce9178]"X-CSRFToken"[/COLOR][COLOR=#d4d4d4]:[/COLOR][COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].ses.cookies.get_dict()[[/COLOR][COLOR=#ce9178]"csrftoken"[/COLOR][COLOR=#d4d4d4]],[/COLOR]
[COLOR=#ce9178]"X-Instagram-AJAX"[/COLOR][COLOR=#d4d4d4]:[/COLOR][COLOR=#4ec9b0]str[/COLOR][COLOR=#d4d4d4]([/COLOR][COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].requestNumber),[/COLOR]
[COLOR=#ce9178]"X-Requested-With"[/COLOR][COLOR=#d4d4d4]:[/COLOR][COLOR=#ce9178]"XMLHttpRequest"[/COLOR]
[COLOR=#d4d4d4] }[/COLOR]
[COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].ses.headers.update(headers)[/COLOR]
[COLOR=#569cd6]def[/COLOR][COLOR=#dcdcaa]GETAndUpdate[/COLOR][COLOR=#d4d4d4]([/COLOR][COLOR=#9cdcfe]self[/COLOR][COLOR=#d4d4d4],[/COLOR][COLOR=#9cdcfe]url[/COLOR][COLOR=#d4d4d4]):[/COLOR]
[COLOR=#ce9178]"""[/COLOR]
[COLOR=#ce9178] Normal bir GET requestinden bir farkı yok sadece[/COLOR]
[COLOR=#ce9178] geri donüş kodu 200 ise yani request başarılı ise[/COLOR]
[COLOR=#ce9178] çerezleri güncelliyor.[/COLOR]
[COLOR=#ce9178] """[/COLOR]
[COLOR=#d4d4d4] response [/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].ses.get(url)[/COLOR]
[COLOR=#c586c0]if[/COLOR][COLOR=#d4d4d4] (response.status_code [/COLOR][COLOR=#d4d4d4]==[/COLOR][COLOR=#b5cea8]200[/COLOR][COLOR=#d4d4d4]):[/COLOR]
[COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].ses.cookies.update(response.cookies)[/COLOR]
[COLOR=#c586c0]return[/COLOR][COLOR=#d4d4d4] response[/COLOR]
[COLOR=#569cd6]def[/COLOR][COLOR=#dcdcaa]POSTAndUpdate[/COLOR][COLOR=#d4d4d4]([/COLOR][COLOR=#9cdcfe]self[/COLOR][COLOR=#d4d4d4],[/COLOR][COLOR=#9cdcfe]url[/COLOR][COLOR=#d4d4d4],[/COLOR][COLOR=#9cdcfe]data[/COLOR][COLOR=#d4d4d4]):[/COLOR]
[COLOR=#ce9178]"""[/COLOR]
[COLOR=#ce9178] GETAndUpdate fonksiyonuyla aynı sadece POST requesti[/COLOR]
[COLOR=#ce9178] yolluyor.[/COLOR]
[COLOR=#ce9178] """[/COLOR]
[COLOR=#d4d4d4] response [/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].ses.post(url,[/COLOR][COLOR=#9cdcfe]data[/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#d4d4d4]data)[/COLOR]
[COLOR=#c586c0]if[/COLOR][COLOR=#d4d4d4] (response.status_code [/COLOR][COLOR=#d4d4d4]==[/COLOR][COLOR=#b5cea8]200[/COLOR][COLOR=#d4d4d4]):[/COLOR]
[COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].ses.cookies.update(response.cookies)[/COLOR]
[COLOR=#c586c0]return[/COLOR][COLOR=#d4d4d4] response[/COLOR]
[COLOR=#569cd6]def[/COLOR][COLOR=#dcdcaa]Register[/COLOR][COLOR=#d4d4d4]([/COLOR][COLOR=#9cdcfe]self[/COLOR][COLOR=#d4d4d4]):[/COLOR]
[COLOR=#ce9178]"""[/COLOR]
[COLOR=#ce9178] Register fonksiyonunun dönüş formatı:[/COLOR]
[COLOR=#ce9178] {[/COLOR]
[COLOR=#ce9178] "status": "False" veya "True",[/COLOR]
[COLOR=#ce9178] "message": "Hata mesajı." veya "None"[/COLOR]
[COLOR=#ce9178] }[/COLOR]
[COLOR=#ce9178] """[/COLOR]
[COLOR=#c586c0]if[/COLOR][COLOR=#d4d4d4] ([/COLOR][COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].next_stage [/COLOR][COLOR=#d4d4d4]==[/COLOR][COLOR=#569cd6]False[/COLOR][COLOR=#d4d4d4]):[/COLOR]
[COLOR=#c586c0]return[/COLOR][COLOR=#d4d4d4] {[/COLOR]
[COLOR=#ce9178]"status"[/COLOR][COLOR=#d4d4d4]:[/COLOR][COLOR=#569cd6]False[/COLOR][COLOR=#d4d4d4],[/COLOR]
[COLOR=#ce9178]"message"[/COLOR][COLOR=#d4d4d4]:[/COLOR][COLOR=#ce9178]"Verilen argumanlarda eksiklik var veya Proxy bozuk"[/COLOR]
[COLOR=#d4d4d4] }[/COLOR]
[COLOR=#6a9955]# Bu yaptığımız request Cookie'leri almak ve Header'leri yüklemek içindi.[/COLOR]
[COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].GETAndUpdate([/COLOR][COLOR=#ce9178]"https://www.instagram.com/accounts/emailsignup/"[/COLOR][COLOR=#d4d4d4])[/COLOR]
[COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].UpdateHeaders()[/COLOR]
[COLOR=#6a9955]# Bu yaptığımız request hani username yazarız bu kullanılıyor vs der onu denemek için.[/COLOR]
[COLOR=#d4d4d4] web_create_response [/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].POSTAndUpdate([/COLOR][COLOR=#ce9178]"https://www.instagram.com/accounts/web_create_ajax/attempt/"[/COLOR][COLOR=#d4d4d4],{[/COLOR]
[COLOR=#ce9178]"email"[/COLOR][COLOR=#d4d4d4]:[/COLOR][COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].email,[/COLOR]
[COLOR=#ce9178]"first_name"[/COLOR][COLOR=#d4d4d4]:[/COLOR][COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].full_name,[/COLOR]
[COLOR=#ce9178]"opt_into_one_tap"[/COLOR][COLOR=#d4d4d4]:[/COLOR][COLOR=#ce9178]"false"[/COLOR][COLOR=#d4d4d4], [/COLOR][COLOR=#6a9955]# Bunun ne olduğunu bende bilmiyorum ama gerekli galiba :D[/COLOR]
[COLOR=#ce9178]"password"[/COLOR][COLOR=#d4d4d4]:[/COLOR][COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].password,[/COLOR]
[COLOR=#ce9178]"username"[/COLOR][COLOR=#d4d4d4]:[/COLOR][COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].username[/COLOR]
[COLOR=#d4d4d4] })[/COLOR]
[COLOR=#6a9955]# Şimdi yaptığımız request başarılı mı diye bakacağız.[/COLOR]
[COLOR=#c586c0]if[/COLOR][COLOR=#d4d4d4] (web_create_response.status_code [/COLOR][COLOR=#d4d4d4]==[/COLOR][COLOR=#b5cea8]200[/COLOR][COLOR=#569cd6]and[/COLOR][COLOR=#d4d4d4] web_create_response.json()[[/COLOR][COLOR=#ce9178]"dryrun_passed"[/COLOR][COLOR=#d4d4d4]] [/COLOR][COLOR=#d4d4d4]==[/COLOR][COLOR=#569cd6]True[/COLOR][COLOR=#d4d4d4]):[/COLOR]
[COLOR=#6a9955]# Tamamdır şimdi asıl kayıt olma requestine giriyoruz.[/COLOR]
[COLOR=#d4d4d4] register_response [/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].POSTAndUpdate([/COLOR][COLOR=#ce9178]"https://www.instagram.com/accounts/web_create_ajax/"[/COLOR][COLOR=#d4d4d4],{[/COLOR]
[COLOR=#ce9178]"email"[/COLOR][COLOR=#d4d4d4]:[/COLOR][COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].email,[/COLOR]
[COLOR=#ce9178]"first_name"[/COLOR][COLOR=#d4d4d4]:[/COLOR][COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].full_name.replace([/COLOR][COLOR=#ce9178]" "[/COLOR][COLOR=#d4d4d4],[/COLOR][COLOR=#ce9178]"+"[/COLOR][COLOR=#d4d4d4]),[/COLOR]
[COLOR=#ce9178]"opt_into_one_tap"[/COLOR][COLOR=#d4d4d4]:[/COLOR][COLOR=#ce9178]"false"[/COLOR][COLOR=#d4d4d4], [/COLOR][COLOR=#6a9955]# Bunun ne olduğunu bende bilmiyorum ama gerekli galiba :D[/COLOR]
[COLOR=#ce9178]"password"[/COLOR][COLOR=#d4d4d4]:[/COLOR][COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].password,[/COLOR]
[COLOR=#ce9178]"seamless_login_enabled"[/COLOR][COLOR=#d4d4d4]:[/COLOR][COLOR=#ce9178]"1"[/COLOR][COLOR=#d4d4d4],[/COLOR]
[COLOR=#ce9178]"tos_version"[/COLOR][COLOR=#d4d4d4]:[/COLOR][COLOR=#ce9178]"row"[/COLOR][COLOR=#d4d4d4],[/COLOR]
[COLOR=#ce9178]"username"[/COLOR][COLOR=#d4d4d4]:[/COLOR][COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].username[/COLOR]
[COLOR=#d4d4d4] })[/COLOR]
[COLOR=#c586c0]if[/COLOR][COLOR=#d4d4d4] (register_response.status_code [/COLOR][COLOR=#d4d4d4]==[/COLOR][COLOR=#b5cea8]200[/COLOR][COLOR=#569cd6]and[/COLOR][COLOR=#d4d4d4] register_response.json()[[/COLOR][COLOR=#ce9178]"account_created"[/COLOR][COLOR=#d4d4d4]] [/COLOR][COLOR=#d4d4d4]==[/COLOR][COLOR=#569cd6]True[/COLOR][COLOR=#d4d4d4]):[/COLOR]
[COLOR=#c586c0]return[/COLOR][COLOR=#d4d4d4] {[/COLOR]
[COLOR=#ce9178]"status"[/COLOR][COLOR=#d4d4d4]:[/COLOR][COLOR=#569cd6]True[/COLOR][COLOR=#d4d4d4],[/COLOR]
[COLOR=#ce9178]"message"[/COLOR][COLOR=#d4d4d4]:[/COLOR][COLOR=#569cd6]None[/COLOR]
[COLOR=#d4d4d4] }[/COLOR]
[COLOR=#c586c0]else[/COLOR][COLOR=#d4d4d4]:[/COLOR]
[COLOR=#c586c0]return[/COLOR][COLOR=#d4d4d4] {[/COLOR]
[COLOR=#ce9178]"status"[/COLOR][COLOR=#d4d4d4]:[/COLOR][COLOR=#569cd6]False[/COLOR][COLOR=#d4d4d4],[/COLOR]
[COLOR=#ce9178]"message"[/COLOR][COLOR=#d4d4d4]:register_response.text[/COLOR]
[COLOR=#d4d4d4] }[/COLOR]
[COLOR=#c586c0]else[/COLOR][COLOR=#d4d4d4]:[/COLOR]
[COLOR=#c586c0]return[/COLOR][COLOR=#d4d4d4] {[/COLOR]
[COLOR=#ce9178]"status"[/COLOR][COLOR=#d4d4d4]:[/COLOR][COLOR=#569cd6]False[/COLOR][COLOR=#d4d4d4],[/COLOR]
[COLOR=#ce9178]"message"[/COLOR][COLOR=#d4d4d4]:web_create_response.text[/COLOR]
[COLOR=#d4d4d4] }[/COLOR]
[COLOR=#ce9178]"""[/COLOR]
[COLOR=#ce9178]Profil oluşturmak için bir sitenin API'sini kullanıyorum.[/COLOR]
[COLOR=#ce9178]http://rp.burakgarci.net/#api[/COLOR]
[COLOR=#ce9178]E-Mail içinse bir 10 dakikalık E-Mail adresi kullanıyorum.[/COLOR]
[COLOR=#ce9178]https://10minutemail.net/address.api.php?new=1[/COLOR]
[COLOR=#ce9178]"""[/COLOR]
[COLOR=#569cd6]class[/COLOR][COLOR=#4ec9b0]Profile[/COLOR][COLOR=#d4d4d4]:[/COLOR]
[COLOR=#569cd6]def[/COLOR][COLOR=#dcdcaa]__init__[/COLOR][COLOR=#d4d4d4]([/COLOR][COLOR=#9cdcfe]self[/COLOR][COLOR=#d4d4d4]):[/COLOR]
[COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].ses [/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#d4d4d4] Session()[/COLOR]
[COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].response [/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#569cd6]None[/COLOR]
[COLOR=#569cd6]def[/COLOR][COLOR=#dcdcaa]Generate[/COLOR][COLOR=#d4d4d4]([/COLOR][COLOR=#9cdcfe]self[/COLOR][COLOR=#d4d4d4]):[/COLOR]
[COLOR=#d4d4d4] response [/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].ses.get([/COLOR][COLOR=#ce9178]"http://rp.burakgarci.net/api.php"[/COLOR][COLOR=#d4d4d4])[/COLOR]
[COLOR=#c586c0]if[/COLOR][COLOR=#d4d4d4] (response.status_code [/COLOR][COLOR=#d4d4d4]==[/COLOR][COLOR=#b5cea8]200[/COLOR][COLOR=#d4d4d4]):[/COLOR]
[COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].response [/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#d4d4d4] response[/COLOR]
[COLOR=#c586c0]return[/COLOR][COLOR=#d4d4d4] response.json()[/COLOR]
[COLOR=#c586c0]else[/COLOR][COLOR=#d4d4d4]:[/COLOR]
[COLOR=#c586c0]return[/COLOR][COLOR=#569cd6]None[/COLOR]
[COLOR=#569cd6]def[/COLOR][COLOR=#dcdcaa]GenerateUserName[/COLOR][COLOR=#d4d4d4]([/COLOR][COLOR=#9cdcfe]self[/COLOR][COLOR=#d4d4d4]):[/COLOR]
[COLOR=#c586c0]if[/COLOR][COLOR=#d4d4d4] ([/COLOR][COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].response [/COLOR][COLOR=#d4d4d4]!=[/COLOR][COLOR=#569cd6]None[/COLOR][COLOR=#d4d4d4]):[/COLOR]
[COLOR=#d4d4d4] names [/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].response.json()[[/COLOR][COLOR=#ce9178]"tam_isim"[/COLOR][COLOR=#d4d4d4]].split([/COLOR][COLOR=#ce9178]" "[/COLOR][COLOR=#d4d4d4])[/COLOR]
[COLOR=#d4d4d4] username [/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].response.json()[[/COLOR][COLOR=#ce9178]"kullanici_adi"[/COLOR][COLOR=#d4d4d4]] [/COLOR][COLOR=#d4d4d4]+[/COLOR][COLOR=#ce9178]"_"[/COLOR][COLOR=#d4d4d4]+[/COLOR][COLOR=#4ec9b0]str[/COLOR][COLOR=#d4d4d4](choice([/COLOR][COLOR=#dcdcaa]range[/COLOR][COLOR=#d4d4d4]([/COLOR][COLOR=#b5cea8]100[/COLOR][COLOR=#d4d4d4])))[/COLOR]
[COLOR=#c586c0]return[/COLOR][COLOR=#d4d4d4] username[/COLOR]
[COLOR=#c586c0]else[/COLOR][COLOR=#d4d4d4]:[/COLOR]
[COLOR=#c586c0]return[/COLOR][COLOR=#569cd6]None[/COLOR]
[COLOR=#569cd6]def[/COLOR][COLOR=#dcdcaa]GenerateMail[/COLOR][COLOR=#d4d4d4]([/COLOR][COLOR=#9cdcfe]self[/COLOR][COLOR=#d4d4d4]):[/COLOR]
[COLOR=#c586c0]if[/COLOR][COLOR=#d4d4d4] ([/COLOR][COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].response [/COLOR][COLOR=#d4d4d4]!=[/COLOR][COLOR=#569cd6]None[/COLOR][COLOR=#d4d4d4]):[/COLOR]
[COLOR=#d4d4d4] response [/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4].ses.get([/COLOR][COLOR=#ce9178]"https://10minutemail.net/address.api.php?new=1"[/COLOR][COLOR=#d4d4d4])[/COLOR]
[COLOR=#c586c0]if[/COLOR][COLOR=#d4d4d4] (response.status_code [/COLOR][COLOR=#d4d4d4]==[/COLOR][COLOR=#b5cea8]200[/COLOR][COLOR=#d4d4d4]):[/COLOR]
[COLOR=#c586c0]return[/COLOR][COLOR=#d4d4d4] response.json()[[/COLOR][COLOR=#ce9178]"mail_get_mail"[/COLOR][COLOR=#d4d4d4]][/COLOR]
[COLOR=#c586c0]else[/COLOR][COLOR=#d4d4d4]:[/COLOR]
[COLOR=#c586c0]return[/COLOR][COLOR=#569cd6]None[/COLOR]
[COLOR=#d4d4d4] profilegenerator [/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#d4d4d4] Profile()[/COLOR]
[COLOR=#d4d4d4] info [/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#d4d4d4] profilegenerator.Generate()[/COLOR]
[COLOR=#d4d4d4] account_opener [/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#d4d4d4] Opener({[/COLOR]
[COLOR=#ce9178]"email"[/COLOR][COLOR=#d4d4d4]:profilegenerator.GenerateMail(),[/COLOR]
[COLOR=#ce9178]"full_name"[/COLOR][COLOR=#d4d4d4]: info[[/COLOR][COLOR=#ce9178]"tam_isim"[/COLOR][COLOR=#d4d4d4]],[/COLOR]
[COLOR=#ce9178]"username"[/COLOR][COLOR=#d4d4d4]: profilegenerator.GenerateUserName(),[/COLOR]
[COLOR=#ce9178]"password"[/COLOR][COLOR=#d4d4d4]:[/COLOR][COLOR=#ce9178]"XHO7abrjxW"[/COLOR][COLOR=#d4d4d4],[/COLOR]
[COLOR=#ce9178]"proxy"[/COLOR][COLOR=#d4d4d4]: [/COLOR][COLOR=#ce9178]"36.89.75.225:36940/"[/COLOR]
[COLOR=#d4d4d4] })[/COLOR]
[COLOR=#dcdcaa]print[/COLOR][COLOR=#d4d4d4](account_opener.Register())[/COLOR]
[/FONT][/COLOR]