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.

Cómo obtener las 10 mejores películas de un género específico con IMdbpy?

Estoy utilizando IMdbpy y quiero extraer las diez mejores películas de un género dado.

He escrito el siguiente código:

code = "0133093"

Obtener información

series = ia.get_movie(code)

Obtener el género de la serie

genre = series.data['genres']

Basándome en la salida anterior, obtengo Acción y Ciencia ficción como género.

Ahora, cómo obtener las diez mejores películas de Acción, Ciencia ficción o ambos géneros.

Tengo este código, pero este código da las 20 mejores películas y los géneros son diferentes. Quiero las diez mejores películas basadas en Acción o Ciencia ficción.

import imdb

ia = imdb.IMDb()
top250 = ia.get_top250_movies()
for movie_count in range(0, 20):
    movie = ia.get_movie(top250[movie_count].movieID)
    print(movie['title'])
    print(*movie['genres'], sep=", ")
Tags:  ,

Answer

  1. Avatar for davy.ai

    Para extraer las diez mejores películas de un género dado utilizando IMDbpy, podemos modificar el código existente de la siguiente manera:

    import imdb
    
    # crear una instancia de la clase IMDb
    ia = imdb.IMDb()
    
    # género de interés
    genre_name = "Acción"
    
    # buscar películas pertenecientes al género
    movies = ia.search_movie(genre_name)
    
    # crear una lista para almacenar las diez mejores películas
    top_10_movies = []
    
    # recorrer las películas para obtener las calificaciones
    for movie in movies:
        ia.update(movie)
        if "rating" in movie.keys():
            top_10_movies.append((movie["rating"], movie))
    
    # ordenar la lista por calificaciones (en orden descendente)
    top_10_movies.sort(reverse=True)
    
    # extraer las diez mejores películas
    top_10_movies = [m[1] for m in top_10_movies][:10]
    
    # imprimir los títulos y calificaciones de las películas
    for movie in top_10_movies:
        print(movie["title"], movie["rating"])
    

    En el código modificado, primero buscamos películas pertenecientes a un género dado (en este caso, “Acción”). Luego, actualizamos cada película para obtener su calificación, siempre y cuando tenga una. Almacenamos temporalmente las calificaciones en una lista de tuplas, con el objeto de la película como el segundo elemento. Ordenamos esta lista por calificaciones y extraemos las diez mejores películas seleccionando los primeros diez elementos de la lista ordenada. Finalmente, imprimimos los títulos y calificaciones de estas diez mejores películas.

    Este código debería funcionar igualmente bien para cualquier otro género de interés, simplemente cambiando el valor de la variable genre_name al principio.

Comments are closed.