Instagram'a Requests ile Giriş Yapmak

Sadece Python requests kullanarak İnstagrama otomatik giriş yapmak istiyorum fakat bir türlü başaramadım. Kodunu paylaşabilecek var mı?

1 Beğeni

Konu açmadan önce biraz araştırma yapmanızı taysiye ediyorum:

(Bunu bulmam 1 dk. sürmedi.)

1 Beğeni

Hocam teşekkürler fakat ben bu kodu zaten bulmuştum , işime yaramadı eğer açıklamamı okuduysanız sadece requests kütüphanesi kullanarak yapmak istediğimi belirtmiştim. Kendi kodunuz varsa paylaşabilirsiniz.

1 Beğeni

Ayrıca belirtmek isterimki paylaştığınız linkteki kodlar çalışmıyor. Bir de kendinizin denemenizi rica edeceğim.

Evet, içe aktarımlar eksik ve username, password değişkenleri tanımlanmamış. Bir de şöyle deneyin:

from datetime import datetime
import requests
import json

link = 'https://www.instagram.com/accounts/login/'
login_url = 'https://www.instagram.com/accounts/login/ajax/'

time = int(datetime.now().timestamp())
response = requests.get(link)
csrf = response.cookies['csrftoken']
username = ""
password = "" 

payload = {
    'username': username,
    'enc_password': f'#PWD_INSTAGRAM_BROWSER:0:{time}:{password}',
    'queryParams': {},
    'optIntoOneTap': 'false'
}

login_header = {
    "User-Agent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36",
    "X-Requested-With": "XMLHttpRequest",
    "Referer": "https://www.instagram.com/accounts/login/",
    "x-csrftoken": csrf
}

login_response = requests.post(login_url, data=payload, headers=login_header)
json_data = json.loads(login_response.text)

if json_data["authenticated"]:

    print("login successful")
    cookies = login_response.cookies
    cookie_jar = cookies.get_dict()
    csrf_token = cookie_jar['csrftoken']
    print("csrf_token: ", csrf_token)
    session_id = cookie_jar['sessionid']
    print("session_id: ", session_id)
else:
    print("login failed ", login_response.text)

Eğer yine hata alırsanız hata mesajını da paylaşın lütfen.

Traceback (most recent call last):
  File "C:\Users\Ahmet Yusuf\PycharmProjects\pythonProject\helper2.py", line 10, in <module>
    csrf = response.cookies['csrftoken']
  File "C:\Users\Ahmet Yusuf\PycharmProjects\pythonProject\venv\lib\site-packages\requests\cookies.py", line 328, in __getitem__
    return self._find_no_duplicates(name)
  File "C:\Users\Ahmet Yusuf\PycharmProjects\pythonProject\venv\lib\site-packages\requests\cookies.py", line 399, in _find_no_duplicates
    raise KeyError('name=%r, domain=%r, path=%r' % (name, domain, path))
KeyError: "name='csrftoken', domain=None, path=None"

dediğim gibi çalışmıyor kendiniz denediniz mi?

Tamam çözdüm :slight_smile:, Instagram çerez ismini değiştirdiği için hata alıyormuşsunuz.

Şu satırı:

şu şekilde değiştirin:

csrf = response.cookies['ig_did']

Bir Instagram hesabı açmak istemediğim için denememiştim.


Bir de şu kodu buldum(bahsettiğim düzeltmeyi bu kod içinde uygulamak gerekebilir):

4 Beğeni

Teşekkürler hocam çok yardımcı oldunuz. :)