我无法使用 Python 请求登录 instagram(错误请求 400)

Emr*_*mre 0 python python-requests

你好,我正在尝试用 python 请求做一个项目。但是当我尝试登录 instagram 时,我变成了这样:

** 绑定方法Response.json of Response [400] **

我的代码:

import os
import requests
import getpass
import json
import io
import time

X_SECOND = 2
BASE_URL = "https://www.instagram.com/"
LOGIN_URL = BASE_URL + "accounts/login/ajax/"
USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; ) Gecko/20100101 Firefox/65.0"
CHANGE_URL = "https://www.instagram.com/accounts/web_change_profile_picture/"
CHNAGE_DATA = {"Content-Disposition": "form-data", "name": "profile_pic",
               "filename": "profilepic.jpg", "Content-Type": "image/jpeg"}
headers = {
    "Host": "www.instagram.com",
    "Accept": "*/*",
    "Accept-Language": "en-US,en;q=0.5",
    "Accept-Encoding": "gzip, deflate, br",
    "Referer": "https://www.instagram.com/accounts/edit/",
    "X-IG-App-ID": "936619743392459",
    "X-Requested-With": "XMLHttpRequest",
    "DNT": "1",
    "Connection": "keep-alive",
}
session = requests.Session()
session.headers = {'user-agent': USER_AGENT, 'Referer': BASE_URL}


def login():
    USERNAME = str(input('Username > '))
    PASSWD = getpass.getpass('Password > ')
    resp = session.get(BASE_URL)
    session.headers.update({'X-CSRFToken': resp.cookies['csrftoken']})
    login_data = {'username': USERNAME, 'password': PASSWD}
    login_resp = session.post(LOGIN_URL, data=login_data, allow_redirects=True)
    session.headers.update({'X-CSRFToken': resp.cookies['csrftoken']})
    if login_resp.json()['authenticated']:
        print("Login successful")
    else:
        print("Login failed!")
        login()
    # print(login.json())
    session.headers.update({'X-CSRFToken': login_resp.cookies['csrftoken']})
Run Code Online (Sandbox Code Playgroud)

我认为问题不在于我的代码。

小智 5

尝试使用 enc_password。更改您的登录数据,例如:

str_time = str(int(time.time()))
PASSWORD = '#PWD_INSTAGRAM_BROWSER:0:' + str_time + ':' + PASSWD
login_data = {'username': USERNAME, 'enc_password': PASSWORD}
Run Code Online (Sandbox Code Playgroud)