es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tengo un enlace de imagen de la API de iMDB, ¿cómo puedo cambiar su tamaño en python?

Estoy tratando de trabajar con la API de IMDb. Mi código hasta ahora es:

import http.client
import json
import requests

conn = http.client.HTTPSConnection("imdb-api.com", 443)
payload = ''
headers = {'User-agent': 'Chrome/95.0'}
conn.request("GET", "https://imdb-api.com/en/API/MostPopularMovies/<api_key>",headers=headers)
res = conn.getresponse()
data = res.read()
convertedDict = json.loads(data.decode("utf-8"))
imagepath = r'venv/files/image.jpeg'
req = requests.get(convertedDict['items'][0]['image'], headers=headers)

with open(imagepath, 'wb') as file:
   file.write(req.content)

Esto me permite descargar la imagen de la primera película popular, sin embargo, el tamaño de la imagen es muy pequeño. Este es el enlace que estoy descargando. Sé que si elimino todo después de @, la imagen se volverá mucho más grande. ¿Hay alguna forma de editar el enlace para eliminar todo después de @ e incluso editar los números después de UX con código? Todo lo que intento hacer con operaciones de cadena o URL me da un error.

https://m.media-amazon.com/images/M/MV5BZWMyYzFjYTYtNTRjYi00OGExLWE2YzgtOGRmYjAxZTU3NzBiXkEyXkFqcGdeQXVyMzQ0MzA0NTM@.V1UX128CR0,3,128,176AL_.jpg

Gracias de antemano.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, puedes manipular el enlace para obtener una imagen más grande eliminando todo lo que haya después de “@” y editando los números después de “UX”. Así es cómo puedes modificar el enlace en tu código:

    import re
    
    #... tu código ...
    
    image_url = convertedDict['items'][0]['image']
    # Obtén el enlace antes de "@"
    image_url = re.split("@", image_url)[0]
    # Edita los números después de "UX"
    image_url = re.sub("UX\d{3}_", "UX500_", image_url)
    req = requests.get(image_url, headers=headers)
    
    #... tu código ...
    

    La función re.split() divide la URL en “@” y devuelve la parte antes de él. La función re.sub() luego encuentra el patrón “UX” seguido de tres dígitos y un guión bajo, y lo reemplaza con “UX500_”, lo cual te dará una imagen más grande.

    Ahora puedes usar el image_url modificado para descargar una imagen más grande.

Comments are closed.