- После прослушивания процесса загрузки с помощью инструментов разработчика Firefox я скопировал все
request headers
в headers
из post request
, но это не сработало, затем я удалил Content-Type": "multipart/form-data; boundary=-...XXXXX"
и boom! - Я также обновил значение
"Content-Length"
с помощью os.path.getsize("my_new_pp.jpg")
- Убедитесь, что вы обновили страницу с изображением профиля с помощью без кэша , на FF удерживайте нажатой клавишу Клавиши Shift и щелчок левой кнопкой мыши кнопка перезагрузки .
Мне удалось изменить изображение профиля в Instagram с помощью следующего кода:
import os
import requests
p_pic = "my_new_pp.jpg"
p_pic_s = os.path.getsize("my_new_pp.jpg")
headers = {
"Host": "www.instagram.com",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.9 Safari/537.36",
"Accept": "*/*",
"Accept-Language": "en-US,en;q=0.5",
"Accept-Encoding": "gzip, deflate, br",
"Referer": "https://www.instagram.com/pedro_lobito/",
"X-CSRFToken": "YOUR_X-CSRFToken",
"X-Instagram-AJAX": "YOUR_X-Instagram-AJAX",
"X-Requested-With": "XMLHttpRequest",
"Content-Length": str(p_pic_s),
"DNT": "1",
"Connection": "keep-alive",
"Cookie": "YOUR_COOKIE"
}
url = "https://www.instagram.com/accounts/web_change_profile_picture/"
files = {'profile_pic': open(p_pic,'rb')}
values = {"Content-Disposition": "form-data", "name": "profile_pic", "filename":"profilepic.jpg",
"Content-Type": "image/jpeg"}
r = requests.post(url, files=files, data=values, headers=headers)
print(r.text)
Ответ:
{"changed_profile": true, "id": 233885295, "has_profile_pic": true, "profile_pic_url": "https://instagram.flis9-1.fna.fbcdn.net/vp/09bb6c124303a825a67da0cb092c9ee7/5C8F561F/t51.2885-19/s150x150/44814766_1606677162811158_2721039563597283328_n.jpg", "profile_pic_url_hd": "https://instagram.flis9-1.fna.fbcdn.net/vp/adb01e186d733d3660c300db5bae41a9/5C79DA67/t51.2885-19/s320x320/44814766_1606677162811158_2721039563597283328_n.jpg", "status": "ok"}