Загрузка фото через request

Есть сайт https://www.aiease.ai/app/remove-bg , там достаточно простая форма для загрузки фото. Я уже несколько дней читаю различные статьи но так и ничего не нашел, можно ли как то сделать загрузку к ним на сайт через request на пайтон.

Последнее, что предложили загрузку фото, фото вроде загружает, сам код

import requests

# URL для отправки POST-запроса
url = "https://www.aiease.ai/app/remove-bg"

# Заголовки для запроса
headers = {
    "Accept": "application/json, text/plain, */*",
    "Accept-Language": "en-US,en;q=0.9",
    "Content-Type": "multipart/form-data",
}

with open('photo.jpg', 'rb') as image_file:
    files = {'file': ('photo.jpg', image_file, 'image/jpeg')}

    # Отправка POST-запроса
    response = requests.post(url, headers=headers, files=files)

# Проверка ответа
if response.status_code == 200:
    print("Файл успешно загружен")
    print(response.text)
else:
    print(f"Ошибка: {response.status_code}")

В ответ выдает страницу HTML

Получается если фото загружает, есть ли возможность получить ссылку на это фото как тут введите сюда описание изображения


Ответы (1 шт):

Автор решения: Рустам Рысаев

PUT запрос стоит переделать на POST, почему?

"Content-Type": "image/png" - вряд ли тот заголовок. Чаще всего данные в формате медиа передают с помощью BASE64, или в двоичном коде. запросы через режим разработчика

я тоже не эксперт, но помоему фотография кодируется перед отправкой,и еще там есть time: 21cb2d44-ac8a-402a-a70f-89a681f62a88 , возможно тоже важная деталь

UPD: можно попробовать этот код от ГПТ

import requests

# URL для отправки POST-запроса
url = "https://www.aiease.ai/app/remove-bg"

# Заголовки для запроса
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",
    "Accept": "application/json, text/plain, */*",
    "Accept-Language": "en-US,en;q=0.9",
    "Content-Type": "multipart/form-data",
}

# Создание сессии
with requests.Session() as session:
    # Открытие изображения
    with open('photo.jpg', 'rb') as image_file:
        files = {'file': ('photo.jpg', image_file, 'image/jpeg')}
        
        # Отправка POST-запроса
        response = session.post(url, headers=headers, files=files)

    # Проверка ответа
    if response.status_code == 200:
        print("Файл успешно загружен")
    else:
        print(f"Ошибка: {response.status_code}")

вот как у меня получилось удалить задний фон:

import requests

url = "https://api.remove.bg/v1.0/removebg"
headers = {
    "X-Api-Key": "Ваш_апи_кей",
}
with open("photo.jpg", "rb") as image_file:
    response = requests.post(url, headers=headers, files={"image_file": image_file})

if response.status_code == 200:
    with open("no_bg.png", "wb") as output:
        output.write(response.content)
    print("Фон удалён.")
else:
    print(f"Ошибка: {response.status_code}, {response.text}")
→ Ссылка