使用请求发布python将照片上传到Instagram时出现错误403

时间:2020-09-06 11:25:52

标签: python post request upload instagram

我正在尝试撰写将照片上传到Instagram的帖子请求,但是第三个请求将403错误返回到“ instagram.com/create/configure /”

我的代码:

import re
import requests
import urllib.request
from datetime import datetime

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

login = 'login_name'
password = '0000'

time = int(datetime.now().timestamp())
print(time)
payload = {
    'username': login,
    'enc_password': f'#PWD_INSTAGRAM_BROWSER:0:{time}:{password}',
    'queryParams': {},
    'optIntoOneTap': 'false'
}

with requests.Session() as s:
    r = s.get(link)
    a = r.cookies['csrftoken']
    print(r.cookies)
    print(a)
    csrf = re.findall(r"csrf_token\":\"(.*?)\"", r.text)[0]
    print(csrf)

    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)
    r = s.get('https://www.instagram.com/accounts/edit/')
    print(login in r.text)


    microtime = int(datetime.now().timestamp())
    headers =  {
        "content-type": "image / jpg",
        "X-Entity-Name" : f"fb_uploader_{microtime}",
        "Offset": "0",
        "User-Agent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36",
        "x-entity-length": "299255",
        "X-Instagram-Rupload-Params": f'{{"media_type": 1, "upload_id": {microtime}, "upload_media_height": 1080, "upload_media_width": 1080}}',
        "x-csrftoken": csrf,
        "x-ig-app-id": "1217981644879628"
    }

    img = urllib.request.urlopen('https://sun9-64.userapi.com/RVgUHSq9fXrDr8YBJ4a4h9xwN4EQA_8BXuQ5Vg/Mdx3LwawEmY.jpg')
    photo = img.read()
    r = s.post(f'https://www.instagram.com/rupload_igphoto/fb_uploader_{microtime}', data=open("4.jpg", "rb"), headers=headers)
    print(r.text)
    headers = {
        'Content-Length': '104',
        'content-type': 'application/x-www-form-urlencoded',
        "origin": "https://www.instagram.com",
        "referer": "https://www.instagram.com/create/details/",
        'user-agent': "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36",
        "x-csrftoken": csrf,
        "x-ig-app-id": "1217981644879628",
        "X-Requested-With": "XMLHttpRequest"
    }

    body = {
        'upload_id': f'{microtime}',
        "caption":'00000000000000000000',
        'usertags':'',
        'custom_accessibility_caption': '',
        'retry_timeout':''
    }
    r = s.post('https://www.instagram.com/create/configure/', data=body, headers=headers)
    print(r.status_code)
    print(r.text)

过程: 第一次授权,一切正常 第二个请求是上传照片,一切都还可以 第三个请求,带有照片的参数,有一个错误... 返回错误403

0 个答案:

没有答案