python-requests - Python Instagram 使用请求登录

标签 python-requests python-3.7 instagram-api

我正在尝试使用 python 登录 Instagram。我能够获取 csrf token ,但 requests.Session().post() 似乎没有将登录数据正确发布到网站。我总是得到 class="no-js not-logged-in client-root"。我已经搜索了一段时间,也尝试登录一些似乎有效的随机网站。在登录方法中,我只需启动一个 requests.Session() 并向 https://www.instagram.com/accounts/login/ 发出发布请求将登录名和密码作为 data 参数。

def login(self):
    with requests.Session() as s:
        p = s.post(self.loginUrl, data=self.loginData, allow_redirects=True)

另外,请不要告诉我使用 Selenium,我严格要求根据请求来执行此操作。

最佳答案

目前(2021 年 1 月)使用 Python 登录 Instagram 的可行解决方案如下:

def login(username, password):
    """Login to Instagram"""

    time = str(int(datetime.datetime.now().timestamp()))
    enc_password = f"#PWD_INSTAGRAM_BROWSER:0:{time}:{password}"

    session = requests.Session()
    # set a cookie that signals Instagram the "Accept cookie" banner was closed
    session.cookies.set("ig_cb", "2")
    session.headers.update({'user-agent': self.user_agent})
    session.headers.update({'Referer': 'https://www.instagram.com'})
    res = session.get('https://www.instagram.com')

    csrftoken = None

    for key in res.cookies.keys():
        if key == 'csrftoken':
            csrftoken = session.cookies['csrftoken']

    session.headers.update({'X-CSRFToken': csrftoken})
    login_data = {'username': username, 'enc_password': enc_password}

    login = session.post('https://www.instagram.com/accounts/login/ajax/', data=login_data, allow_redirects=True)
    session.headers.update({'X-CSRFToken': login.cookies['csrftoken']})

    cookies = login.cookies
    print(login.text)

    session.close()

关于python-requests - Python Instagram 使用请求登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58520305/

相关文章:

instagram-api - Instagram API : Can i check if user is verified?

python - 如何使用 Python 的请求模块上传非 utf-8 编码的文件?

python - Swagger API 以及与 python 请求的交互

python - 如何使用 Python Requests 模块在 Moodle Rest WS 中创建用户?

python - 提取字典字段用作函数名称

java - Play 框架 2.6 - Java : Ws request POST with oAuth Instagram

python - Fhir 史诗沙盒 : Using a JWT to Obtain an Access Token for a Backend Service

python - Pip Install 抛出错误代码 1

python - 如何在使用 pandas [Python] 提取 xls 文件后从输出中删除编号

Instagram 客户端 ID/Instagram API 的新要求