Войти в систему с помощью Python - PullRequest
0 голосов
/ 14 мая 2018

У меня есть собственный проект по созданию бота для 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 не работал для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...