[Résolu] Récupérer une information avec un parser

Récupérer une information avec un parser [Résolu] - PHP - Programmation

Marsh Posté le 10-04-2010 à 18:49:58    

Bonjour,  
 
Je me suis procuré un Parser Allocine disponible sur internet (afin de choper les info des films et pouvoir tout mettre dans ma base SQL)
 
Tout marche impec sauf le "Genre" du film que je n'arrive pas à récupérer
 
J'aimerai par exemple pour le film Dark World avoir comme retour de mon script "Comédie dramatique,Fantastique,Policier,Science fiction,Thriller,Romance" dans le champ Genre
 
J'ai vu qu'il fallait modifier le fichier ParserAlloCine.class.php et plus particulèrement la ligne 25 ou il y a écrit

Code :
  1. const PATERN_GENRE = '/Genre:(.*)<\/a><br\/>/';


ParserAlloCine.class.php

Code :
  1. <?php
  2. /**
  3. * ParserAlloCine 0.1 : Recupere les infos d'un film via Allocine
  4. *
  5. * @author : LECOMTE Cyril <cyrhades@free.fr>
  6. * @version : 14/11/2009
  7. */
  8. class ParserAlloCine
  9. {
  10. // ON CONSERVE LES PORTIONS UTILE POUR ACCELERER L'EXECUTION (300 a 500 lignes au lieu de +6000 lignes)
  11. const PAGE_RECHERCHE = 'http://www.allocine.fr/recherche/1/?q=';
  12. const DEBUT_RECHERCHE = '<table class="totalwidth noborder purehtml">';
  13. const FIN_RECHERCHE = '</table>';
  14. const PAGE_FICHE = 'http://www.allocine.fr/film/fichefilm_gen_cfilm=';
  15. const DEBUT_FICHE = '<div class="boxbasic breadcrumb">';
  16. const FIN_FICHE = '<div class="morezone">';
  17. // N'hésitez pas a ameliorer les patterns ils sont vraiment mal étudié (enfin pas étudié du tout ^^)
  18. const PATERN_ID_FILM = '/fichefilm_gen_cfilm=([0-9]*)\.html/';
  19. const PATERN_POCHETTE_FILM = '/src=\'(http:\/\/.*)\'alt/';
  20. const PATERN_TITRE_ORIGINAL_FILM = '/alt=\'(.*)\' \/>/';
  21. const PATERN_TITRE_FILM = '/fichefilm_gen_cfilm=[0-9]*\.html\'>(.*)<\/a>/';
  22. const PATERN_INFOS_FILMS = '/<span class="fs11">(.*)<br \/>(.*)<br \/>(.*)<\/span>/';
  23. const PATERN_GENRE = '/Genre:(.*)<\/a><br\/>/';
  24. const PATERN_ANNEE = '/ Année de production :(.*)<\/a><br\/>/';
  25. const PATERN_DUREE = '/<br\/> Dur.*([0-9]{1,2})h([0-9]{2}) min/'; // Bug si ecrit Durée pk ???
  26. const PATERN_NOTE = '/<span class="moreinfo">\(([0-9]{1},[0-9]{1})\)<\/span>/';
  27. const PATERN_DATE_SORTIE_CINE = '/\?week=([0-9]{4}-[0-9]{2}-[0-9]{2})/';
  28. const PATERN_SYNOPSIS = "/Synopsis : <\/span>(.*)<\/p><\/div><\/div><ul id/"; // Bug si chaine de fin plus courte Pk???
  29. //-- Attribut privé
  30. private $reponseAlloCine;
  31. private $reponseAlloCineToJson;
  32. private $ficheFilmAlloCine;
  33. private $ficheFilmAlloCineToJson;
  34. private $ResultatRechercheFilm;
  35. //constructeur inutile ici
  36. public function __construct() { }
  37. ..... ?>


Le script est installé sur mon site ici et si vous voulez avoir les fichiers c'est ici
 
Si quelqu'un pouvait me dire ou est l'erreur dans cette ligne ça serait super.
 
Merci d'avance


Message édité par mashable le 10-04-2010 à 21:04:45
Reply

Marsh Posté le 10-04-2010 à 18:49:58   

Reply

Marsh Posté le 10-04-2010 à 18:51:52    

Désolé mais on ne fait pas le boulot pour les gens :o
Si t'as besoin d'aide, on t'aide, mais compte pas sur nous pour faire le travail


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 10-04-2010 à 18:56:11    

Je ne demande pas qu'on me fasse le boulot, je demande si qq'un aurait une idée pour ce problème j'ai déja cherché mais ça ne marche pas  
 
Il faut modifier cette phrase mais je ne sais plus quoi faire

Code :
  1. const PATERN_GENRE = '/Genre:(.*)<\/a><br\/>/';

Reply

Marsh Posté le 10-04-2010 à 19:02:28    

#Genre.+\>(.+)\</a\>#Us

Reply

Marsh Posté le 10-04-2010 à 19:05:59    

Alors monsieur :o
1 : Ton sujet contraire à la charte, en tout cas c'est mon interprétation. Alllociné n'autorise pas (à ce que j'en sais) que les gens récupèrent les informations dessus en passant par des "bots", ce que tu essaies de faire.
2 : La charte dit qu'on n'est pas un support après vente/téléchargement de scripts tout faits
3 : Je ne considère pas que le fait de trouver une constante appelée "PATERN_GENRE" alors que le bug vient de "genre" est un boulot phénoménal. Je considère plutôt que tu n'as pas envie de te taper la doc sur les regexp et que tu viens demander ici.

 

Voilà pourquoi j'ai répondu ça
Et ça ne sert à rien de m'envoyer des MP comme tu l'as fait :o


Message édité par esox_ch le 10-04-2010 à 19:06:19

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 10-04-2010 à 19:10:26    

dozhwal a écrit :

#Genre.+\>(.+)\</a\>#Us


 
Merci énormément dozhwal, ça marche mais malheureusement ça ne retourne qu'un seul genre à la fois ;)

Reply

Marsh Posté le 10-04-2010 à 19:34:24    

Si tu fais du php, interesse toi aux expression régulière car c'est très souvent utiles!
 
Tiens : ce sera mieux:
 

Code :
  1. #Genre :(.+)\<br#Us


Message édité par dozhwal le 10-04-2010 à 19:36:04
Reply

Marsh Posté le 10-04-2010 à 21:08:08    

Merci encore dozhwal ça marche niquel

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed