Sadece Python requests kullanarak İnstagrama otomatik giriş yapmak istiyorum fakat bir türlü başaramadım. Kodunu paylaşabilecek var mı?
Konu açmadan önce biraz araştırma yapmanızı taysiye ediyorum:
(Bunu bulmam 1 dk. sürmedi.)
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.
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 , 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):
Teşekkürler hocam çok yardımcı oldunuz. :)