如何使用python +请求获取instagram sessionid

Rom*_*man 3 python-3.x python-requests

我想sessionid使用requests模块从 Instagram cookie 中获取。

我尝试了这个问题Instagram Authentification with python 和 requests 中描述的代码, 但它不起作用。有什么办法可以得到它吗?登录前或登录后。

And*_*ely 6

您可以使用此脚本登录 Instagram:

import re
import requests

from datetime import datetime

link = 'https://www.instagram.com/accounts/login/'
login_url = 'https://www.instagram.com/accounts/login/ajax/'

time = int(datetime.now().timestamp())

payload = {
    'username': '<USERNAME HERE>',
    'enc_password': f'#PWD_INSTAGRAM_BROWSER:0:{time}:<PASSWORD HERE>',
    'queryParams': {},
    'optIntoOneTap': 'false'
}

with requests.Session() as s:
    r = s.get(link)
    csrf = re.findall(r"csrf_token\":\"(.*?)\"",r.text)[0]
    r = s.post(login_url,data=payload,headers={
        "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
    })
    print(r.status_code)
    print(r.url)
    print(r.text)

    print(s.cookies)
Run Code Online (Sandbox Code Playgroud)

打印(在sessionid饼干里面):

200
https://www.instagram.com/accounts/login/ajax/
{"user": true, "userId": "XXX", "authenticated": true, "oneTapPrompt": true, "reactivated": true, "status": "ok"}
<RequestsCookieJar[<Cookie csrftoken=XXX for .instagram.com/>, <Cookie ds_user_id=XXX for .instagram.com/>, <Cookie mid=XXX for .instagram.com/>, <Cookie rur=ATN for .instagram.com/>, <Cookie sessionid=<SESSION ID> for .instagram.com/>]>
Run Code Online (Sandbox Code Playgroud)