[PHP] [regexp] meedere keren?

Pagina: 1
Acties:
  • 95 views sinds 30-01-2008

  • Scout77
  • Registratie: September 2002
  • Laatst online: 01-01-2025
Ik probeer de cast van een film uit imdb te vissen. Eerst trek ik de imdbsite binnen, deel de pagina op in regels en zoek de regel met de cast. Vervolgens strip ik alle html tags behalve de <a> uit de regel. en houd ik het volgende over:

HTML:
1
Cast overview, first billed only:  <a href="/rg/title-tease/tinyhead/name/nm0000206/"></a><a href="/name/nm0000206/">Keanu Reeves</a> .... Neo<a href="/rg/title-tease/tinyhead/name/nm0000401/"></a><a href="/name/nm0000401/">Laurence Fishburne</a> .... Morpheus<a href="/rg/title-tease/tinyhead/name/nm0005251/"></a><a href="/name/nm0005251/">Carrie-Anne Moss</a> .... Trinity<a href="/rg/title-tease/tinyhead/name/nm0915989/"></a><a href="/name/nm0915989/">Hugo Weaving</a> .... Agent Smith<a href="/name/nm0287825/">Gloria Foster</a> .... Oracle<a href="/rg/title-tease/tinyhead/name/nm0001592/"></a><a href="/name/nm0001592/">Joe Pantoliano</a> .... Cypher<a href="/name/nm0159059/">Marcus Chong</a> .... Tank<a href="/name/nm0032810/">Julian Arahanga</a> .... Apoc<a href="/name/nm0233391/">Matt Doran</a> .... Mouse<a href="/name/nm0565883/">Belinda McClory</a> .... Switch<a href="/name/nm0662562/">Anthony Ray Parker</a> .... Dozer<a href="/name/nm0323822/">Paul Goddard</a> .... Agent Brown<a href="/name/nm0853079/">Robert Taylor</a> .... Agent Jones<a href="/name/nm0040058/">David Aston</a> .... Rhineheart<a href="/name/nm0336802/">Marc Gray</a> .... Choi&nbsp;&nbsp;<a href="fullcredits">(more)</a>
Dan wil ik elke keer alleen de info hebben die in de volgende tag staat:
<a href="/name/*">(info)</a>

Nu probeer ik dat met eregi maar kom helaas niet verder dan de eerste acteur ...
code:
1
<a href="/name[^"]+">([^<]+)</a>

Is het mogelijk om dit te doen met eregi? Soms verschilt er nog wat dan hebben ze er een foto bij en dan komt er een extra <a> tag bij. Eigenlijk gaat het me om de eerste 4 eventueel 5 acteurs ...

Lekker belangrijk


  • Glabbeek
  • Registratie: Februari 2001
  • Laatst online: 12-02 11:54

Glabbeek

Dat dus.

Can I use IMDb data in my software?
Limited non-commercial use of IMDb data is allowed, provided the following conditions are met:

[...]
2. The data must be taken only from the plain text data made available from our FTP sites (see http://www.imdb.com/interfaces for more details and for links to our FTP servers). You may not use data mining, robots, screen scraping, or similar online data gathering and extraction tools on our website. If the information/data you want is not present in the data files available from our FTP sites, it means it's not available for non-commercial usage.
If you do want to use IMDb data for commercial purposes, you must contact our Content Licensing Department at http://www.imdb.com/Licensing/.
[...]
Er is dus een plain-text versie beschikbaar. Waarschijnlijk is die makkelijker te gebruiken :)

En zo is het maar net.


Verwijderd

Kijk eens naar preg_match_all.

PHP:
1
2
3
4
$url = "http://www.imdb.com/title/tt0258463/";
$regex = '|<a href="/name[^"]+">([^<]+)</a>|';
$count = preg_match_all($regex, $http->get($url), $m);
var_dump($m);

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 13-02 11:06

Janoz

Moderator Devschuur®

!litemod

De quote van Glabbeek lijkt me redelijk duidelijk. Je huidige toepassing is, naast onhandig gezien de overige in de quote genoemde mogelijkheden, niet toegestaan.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Dit topic is gesloten.