venom top peliculas español imdb

top - imdb venom



Dado un id. De película IMDB, ¿cómo obtengo su imagen de póster por programación? (15)

Como estoy seguro que sabes, la URL real para esa imagen es

http://ia.media-imdb.com/images/M/MV5BMTI0MDcxMzE3OF5BMl5BanBnXkFtZTcwODc3OTYzMQ@@._V1._SX100_SY133_.jpg

Sin embargo, será difícil saber cómo se genera y no parece que tengan una API disponible públicamente.

Screenscraping es probablemente tu mejor apuesta.

La imagen parece estar generalmente dentro de un div con class = photo y el nombre de la etiqueta a es poster .

La imagen en sí misma está dentro de la etiqueta a.

ID de película tt0438097 se puede encontrar en http://www.imdb.com/title/tt0438097/

¿Cuál es la URL de su imagen de póster?


Esas imágenes de los carteles no parecen tener ninguna correlación con la página del título, por lo que tendrá que recuperar primero la página del título y luego recuperar el elemento img para la página. La buena noticia es que la etiqueta img está envuelta en una etiqueta a con el nombre = "poster". No dijiste qué tipo de herramientas estás usando, pero básicamente es una operación de raspado de pantalla.


La URL es una cadena aleatoria por lo que puedo decir.

Todavía se puede recuperar fácilmente. Es el único img dentro del ancla nombrado poster .

Entonces, si está leyendo la fuente, simplemente busque <a name="poster" y será el texto que sigue al primer src=" desde allí.

Sin embargo, deberá mantener actualizado el código de raspado de la pantalla porque eso probablemente cambie.

También debe tener en cuenta que las imágenes están protegidas por derechos de autor, por lo que debe tener cuidado de usar solo la imagen bajo una buena lógica de "uso justo".


Tenga en cuenta que los términos del servicio prohíben explícitamente screencraping. Puede descargar la base de datos de IMDB como un conjunto de archivos de texto , pero, según tengo entendido, la ID de la película IMDB no se encuentra en estos archivos de texto.


Hoy en día, todos los navegadores modernos tienen la sección " Inspeccionar ":

100% correcto solo para Google Chrome:

  1. Toma el cursor en la imagen.
  2. Haga clic derecho sobre él, seleccione " Inspeccionar Elemento ".
  3. En la ventana aparece, en la pestaña Elementos encontrarás el texto resaltado como
  4. Simplemente haga clic en él.
  5. En la pestaña de Recursos, haz clic con el botón derecho en la imagen.
  6. Seleccione la opción " Copiar URL de imagen ".

Intenta pegarlo como URL en cualquier navegador, solo obtendrás la imagen.



Puedes usar la API de Trakt, tienes que hacer una solicitud de búsqueda con la ID de imdb, y el resultado de Json proporcionado por la API de Trakt contiene enlaces para dos imágenes de esa película (póster y fan art) http://trakt.tv/api- docs / search-movies


Sé que es demasiado tarde, pero en mi proyecto usé esto:

  1. Use omdbapi, tomemos el ejemplo de Inception, use www.omdbapi.com/?t=inception y devolverá un objeto json.
  2. En ese objeto json obtén el objeto "Cartel", que contiene el póster de la imagen.

He hecho algo similar usando phantomjs y wget. Este bit de phantomjs acepta una consulta de búsqueda y devuelve la url del póster de la película del primer resultado. Podrías cambiarlo fácilmente según tus necesidades.

var system = require(''system''); if (system.args.length === 1) { console.log(''Usage: moviePoster.js <movie name>''); phantom.exit(); } var formattedTitle = encodeURIComponent(system.args[1]).replace(/%20/g, "+"); var page = require(''webpage'').create(); page.open(''http://m.imdb.com/find?q='' + formattedTitle, function() { var url = page.evaluate(function() { return ''http://www.imdb.com'' + $(".title").first().find(''a'').attr(''href''); }); page.close(); page = require(''webpage'').create(); page.open(url, function() { var url = page.evaluate(function() { return ''http://www.imdb.com'' + $("#img_primary").find(''a'').attr(''href''); }); page.close(); page = require(''webpage'').create(); page.open(url, function() { var url = page.evaluate(function() { return $(".photo").first().find(''img'').attr(''src''); }); console.log(url); page.close(); phantom.exit(); }); }); });

Descargo la imagen usando wget para muchas películas en un directorio usando este script bash. Los archivos mp4 tienen nombres que le gustan a IMDB, y es por eso que casi se garantiza que el primer resultado de búsqueda es correcto. Nombres como "Love Exposure (2008) .mp4".

for file in *.mp4; do title="${file%.mp4}" if [ ! -f "${title}.jpg" ] then wget `phantomjs moviePoster.js "$title"` -O "${title}.jpg" fi done

Luego minidlna usa el póster de la película cuando crea la base de datos de miniaturas, ya que tiene el mismo nombre que el archivo de video.


Revisa http://www.imdbapi.com/ , Devuelve la url de Póster en cadena.

Por ejemplo, verificar http://www.imdbapi.com/?i=&t=inception y obtendrá la dirección del Poster":"http://ia.media-imdb.com/images/M/MV5BMjAxMzY3NjcxNF5BMl5BanBnXkFtZTcwNTI5OTM0Mw@@._V1._SX320.jpg" : Poster":"http://ia.media-imdb.com/images/M/MV5BMjAxMzY3NjcxNF5BMl5BanBnXkFtZTcwNTI5OTM0Mw@@._V1._SX320.jpg"

Actualización : Parece que el propietario del sitio tuvo algunos argumentos con el personal legal de IMDB. Como se menciona en el sitio original, la dirección del nuevo sitio es http://www.omdbapi.com/


Aquí está mi programa para generar páginas de resumen html legibles para las compañías de películas que se encuentran en la página de imdb. Cambia la URL inicial a tu gusto y genera un archivo html donde puedes ver el título, el resumen, la puntuación y la miniatura.

npm install -g phantomjs

Aquí está el script, guárdalo en imdb.js

var system = require(''system''); var page = require(''webpage'').create(); page.open(''http://www.imdb.com/company/co0026841/?ref_=fn_al_co_1'', function() { console.log(''Fetching movies list''); var movies = page.evaluate(function() { var list = $(''ol li''); var json = [] $.each(list, function(index, listItem) { var link = $(listItem).find(''a''); json.push({link: ''http://www.imdb.com'' + link.attr(''href'')}); }); return json; }); page.close(); console.log(''Found '' + movies.length + '' movies''); fetchMovies(movies, 0); }); function fetchMovies(movies, index) { if (index == movies.length) { console.log(''Done''); console.log(''Generating HTML''); genHtml(movies); phantom.exit(); return; } var movie = movies[index]; console.log(''Requesting data for ''+ movie.link); var page = require(''webpage'').create(); page.open(movie.link, function() { console.log(''Fetching data''); var data = page.evaluate(function() { var title = $(''.title_wrapper h1'').text().trim(); var summary = $(''.summary_text'').text().trim(); var rating = $(''.ratingValue strong'').attr(''title''); var thumb = $(''.poster img'').attr(''src''); if (title == undefined || thumb == undefined) { return null; } return { title: title, summary: summary, rating: rating, thumb: thumb }; }); if (data != null) { movie.title = data.title; movie.summary = data.summary; movie.rating = data.rating; movie.thumb = data.thumb; console.log(movie.title) console.log(''Request complete''); } else { movies.slice(index, 1); index -= 1; console.log(''No data found''); } page.close(); fetchMovies(movies, index + 1); }); } function genHtml(movies) { var fs = require(''fs''); var path = ''movies.html''; var content = Array(); movies.forEach(function(movie) { var section = ''''; section += ''<div>''; section += ''<h3>''+movie.title+''</h3>''; section += ''<p>''+movie.summary+''</p>''; section += ''<p>''+movie.rating+''</p>''; section += ''<img src="''+movie.thumb+''">''; section += ''</div>''; content.push(section); }); var html = ''<html>''+content.join(''/n'')+''</html>''; fs.write(path, html, ''w''); }

Y ejecutarlo como tal

phantomjs imdb.js


omdbapi funciona, pero descubrí que no puedes usar realmente estas imágenes (debido al raspado de la pantalla y están bloqueadas de todos modos si las usas en una etiqueta img )

La mejor solución es usar tmdb.org :

1 use su imdbid en esta api url:

https://api.themoviedb.org/3/find/tt0111161?api_key=___YOURAPIKEY___&external_source=imdb_id

2 Recupere la respuesta json y seleccione el atributo poster_path :

"poster_path":"/9O7gLzmreU0nGkIB6K3BsJbzvNv.jpg"

3 Anote esta ruta con "http://image.tmdb.org/t/p/original" , y tendrá la URL del póster que puede usar en una etiqueta img :-)

4 Incluso puedes cambiar tamaños como este:

http://image.tmdb.org/t/p/original/9O7gLzmreU0nGkIB6K3BsJbzvNv.jpg http://image.tmdb.org/t/p/w150/9O7gLzmreU0nGkIB6K3BsJbzvNv.jpg


Puede usar la herramienta imdb-cli para descargar el póster de la película, por ej.

omdbtool -t "Ice Age: The Meltdown" | wget `sed -n ''/^poster/{n;p;}''`


$Title = $($Movie.Name) $searchTitle = $Title.Replace('' '',''%20'') $moviesearch = Invoke-WebRequest "http://www.imdb.com/search/title?title=$searchTitle&title_type=feature" $titleclassarray = $moviesearch.AllElements | where Class -eq ''loadlate'' | select -First 1 $MoviePoster = $titleclassarray.loadlate


$Movies = Get-ChildItem -path "Z:/MOVIES/COMEDY" | Where-Object {$_.Extension -eq ".avi" -or $_.Extension -eq ".mp4" -or $_.Extension -eq ".mkv" -or $_.Extension -eq<br> <br>".flv" -or $_.Extension -eq ".xvid" -or $_.Extension -eq ".divx"} | Select-Object Name, FullName | Sort Name <br> #Grab all the extension types and filter the ones I ONLY want <br> <br> $COMEDY = ForEach($Movie in $Movies) <br> {<br> $Title = $($Movie.Name)<br> #Remove the file extension<br> $Title = $Title.split(''.'')[0] <br> <br> #Changing the case to all lower <br> $Title = $Title.ToLower()<br> <br> #Replace a space w/ %20 for the search structure<br> $searchTitle = $Title.Replace('' '',''%20'') <br> <br> #Fetching search results<br> $moviesearch = Invoke-WebRequest "http://www.imdb.com/search/title?title=$searchTitle&title_type=feature"<br> <br> #Moving html elements into variable<br> $titleclassarray = $moviesearch.AllElements | where Class -eq ''title'' | select -First 1<br> <br> #Checking if result contains movies<br> try<br><br> { $titleclass = $titleclassarray[0]<br> }<br> catch<br> {<br> Write-Warning "No movie found matching that title http://www.imdb.com/search/title?title=$searchTitle&title_type=feature"<br> } <br> <br> #Parcing HTML for movie link<br> $regex = "</s*a/s*[^>]*?href/s*=/s*[`"'']*([^`"''>]+)[^>]*?>"<br> $linksFound = [Regex]::Matches($titleclass.innerHTML, $regex, "IgnoreCase")<br> <br><br> #Fetching the first result from <br> $titlelink = New-Object System.Collections.ArrayList<br> foreach($link in $linksFound)<br> {<br> $trimmedlink = $link.Groups[1].Value.Trim()<br> if ($trimmedlink.Contains(''/title/''))<br> {<br> [void] $titlelink.Add($trimmedlink)<br> }<br> }<br> #Fetching movie page<br> $movieURL = "http://www.imdb.com$($titlelink[0])"<br> <br> #Grabbing the URL for the Movie Poster<br> $MoviePoster = ((Invoke-WebRequest –Uri $movieURL).Images | Where-Object {$_.title -like "$Title Poster"} | Where src -like "http:*").src <br> <br> $MyVariable = "<a href=" + ''"'' + $($Movie.FullName) + ''"'' + " " + "title=''$Title''" + ">"<br> $ImgLocation = "<img src=" + ''"'' + "$MoviePoster" + ''"'' + "width=" + ''"'' + "225" + ''"'' + "height=" + ''"'' + "275" + ''"'' + "border=" + ''"'' + "0" + ''"'' + "alt=" +<br> ''"'' + $Title + ''"'' + "></a>" + "&nbsp;" + "&nbsp;" + "&nbsp;"+ "&nbsp;" + "&nbsp;" + "&nbsp;"+ "&nbsp;" + "&nbsp;" + "&nbsp;"<br> <br> Write-Output $MyVariable, $ImgLocation<br> <br> }$COMEDY | Out-File z:/db/COMEDY.htm <br> <br> $after = Get-Content z:/db/COMEDY.htm <br> <br> #adding a back button to the Index <br> $before = Get-Content z:/db/before.txt<br> <br> #adding the back button prior to the poster images content<br> Set-Content z:/db/COMEDY.htm –value $before, $after<br>