У меня есть собственный проект по созданию бота для Instagram. Первое, что мне нужно сделать, это создать логин. Я создал скрипт Python ниже, чтобы войти в Instagram. Тем не менее, он возвращает код состояния 403 для меня. Кто-нибудь может дать несколько советов о том, что не так?
import requests
import json
import random
import time
Base_url = 'https://www.instagram.com/'
Login_url = 'https://www.instagram.com/accounts/login/'
Username = 'username'
Passowrd = 'password'
User_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'
login_data = {'username': Username, 'password': Passowrd}
session = requests.Session()
session.headers.update({
'Accept': '*/*',
'Accept-Language': 'en-US,en;q=0.5',
'Accept-Encoding': 'gzip, deflate, br',
'Connection': 'keep-alive',
'Content-Length': '0',
'Host': 'www.instagram.com',
'Origin': 'https://www.instagram.com',
'Referer': 'https://www.instagram.com/',
'User-Agent': User_agent,
'X-Instagram-AJAX': '1',
'Content-Type': 'application/x-www-form-urlencoded',
'X-Requested-With': 'XMLHttpRequest'
})
req = session.get(Base_url)
session.headers.update({'X-CSFRToken': req.cookies['csrftoken']})
time.sleep(5 * random.random())
login = session.post(Login_url, data=login_data, allow_redirects = True )
session.headers.update({'X-CSFRToken': login.cookies['csrftoken']})
csrftoken = login.cookies['csrftoken']
#ig_vw=1536; ig_pr=1.25; ig_vh=772; ig_or=landscape-primary;
session.cookies['ig_vw'] = '1536'
session.cookies['ig_pr'] = '1.25'
session.cookies['ig_vh'] = '772'
session.cookies['ig_or'] = 'landscape-primary'
time.sleep(5 * random.random())
print(login.status_code)
if login.status_code == 200:
#login_text_notjson = login.text
print('sucessfully login')
try:
login_text = json.loads(login.text)
except Exception:
print('there is an error')
else:
#print(login_text_notjson)
print(login_text)
else:
print('you fail to login')
Очень благодарен, если кто-нибудь может дать мне информацию о создании бота для этого. Я до сих пор не понимаю, почему мой user_agent не работал для этого.