Archief - C# - Ophalen IMDB data

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Bauhaus

Legacy Member
Ik ben bezig met het programmeren van een filmdatabase waarbij data van IMDB opgehaald wordt.
Voor de titel gebruik ik de regex (?<=(<title>)).*(?=\\().
Bij buitenlandse films heb je echter een originele en een translated title, bv. de film "Mou gaan dou" aka "Infernal Affairs".
Wanneer ik de regex test in regexbuddy krijg ik de translated titel Infernal Affairs maar in visual studio de originele titel Mou gaan dou !

Iemand enig idee wat het probleem is ?

Bauhaus

Legacy Member
Niemand enig idee ?

dit staat in de paginabron: <title>Infernal Affairs (2002) - IMDb</title>

Hoe komt hij dan aan Mou gaan dou ??

Anoniem13

Legacy Member
Heb je dat getest op een lokale html kopie van die pagina of vul je de url gewoon ergens in je code in waardoor je de html-pagina die gescanned wordt eigenlijk niet ziet?

Demox

Legacy Member
Dit komt omdat de title-tag at runtime door javascript gemanipuleerd wordt.

Ik vermoed dat je met HttpClient o.i.d. de response content ophaalt om daarop de regex los te laten.
Als je als tussenstap deze response eens naar een txt bestandje wegschrijft zal je zien dat in de title-tag ook effectief "Mou gaan dou [...]" bevat.

Ik heb een paar steekproeven gedaan en het lijkt er op dat je de o.b.v "og:title" wel de juiste titel moet kunnen vinden:
Code:
<meta property='og:title' content="Infernal Affairs (2002) - IMDb" />

Succes.

Bauhaus

Legacy Member
Bedankt voor de replies. :)
Heb het inderdaad gevonden door de stream naar een txt te schrijven.
Raar dat 'em die titel verandert at runtime, alle andere tags (genre, jaar, writer,...) werken wel.

Tyfius

Legacy Member
Je kan altijd eens kijken naar de OMDb API (OMDb API - The Open Movie Database) om die data op te halen, dan moet je zelf geen parser schrijven voor IMDb, zij hebben dat voor jou al gedaan en je kan dan gewoon hun API gebruiken.

Als alternatief heb je ook nog TMDb (https://www.themoviedb.org), zij hebben een eigen film database, maar bieden daar ook een API voor aan waar je film gegevens mee kan ophalen.

Bauhaus

Legacy Member
Ja, die OMDb ben ik ook al tegen gekomen, maar om de gegevens op te halen moet je toch ook de pagina scrapen ?

Tyfius

Legacy Member
Bauhaus zei:
Ja, die OMDb ben ik ook al tegen gekomen, maar om de gegevens op te halen moet je toch ook de pagina scrapen ?

Neen. Je moet de OMDb API aanroepen. Je kan op hun website eens een sample proberen. Zij hebben dat scrapen van IMDb al voor jou gedaan en bieden het resultaat daarvan aan via een eenvoudige API.

Een query voor "Fight Club" (http://www.omdbapi.com/?t=Fight+Club) levert je dan een JSON op met de nodige info:
Code:
{
   "Title":"Fight Club",
   "Year":"1999",
   "Rated":"R",
   "Released":"15 Oct 1999",
   "Runtime":"139 min",
   "Genre":"Drama",
   "Director":"David Fincher",
   "Writer":"Chuck Palahniuk (novel), Jim Uhls (screenplay)",
   "Actors":"Edward Norton, Brad Pitt, Meat Loaf, Zach Grenier",
   "Plot":"An insomniac office worker and a devil-may-care soapmaker form an underground fight club that evolves into something much, much more.",
   "Language":"English",
   "Country":"USA, Germany",
   "Awards":"Nominated for 1 Oscar. Another 10 wins & 34 nominations.",
   "Poster":"https://m.media-amazon.com/images/M/MV5BMmEzNTkxYjQtZTc0MC00YTVjLTg5ZTEtZWMwOWVlYzY0NWIwXkEyXkFqcGdeQXVyNzkwMjQ5NzM@._V1_SX300.jpg",
   "Ratings":[
      {
         "Source":"Internet Movie Database",
         "Value":"8.8/10"
      },
      {
         "Source":"Rotten Tomatoes",
         "Value":"79%"
      },
      {
         "Source":"Metacritic",
         "Value":"66/100"
      }
   ],
   "Metascore":"66",
   "imdbRating":"8.8",
   "imdbVotes":"1,699,612",
   "imdbID":"tt0137523",
   "Type":"movie",
   "DVD":"06 Jun 2000",
   "BoxOffice":"N/A",
   "Production":"20th Century Fox",
   "Website":"http://www.foxmovies.com/fightclub/",
   "Response":"True"
}
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan