Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1990 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°1982821
mashable
Posté le 10-04-2010 à 18:49:58  profilanswer
 

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
mood
Publicité
Posté le 10-04-2010 à 18:49:58  profilanswer
 

n°1982822
esox_ch
Posté le 10-04-2010 à 18:51:52  profilanswer
 

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
n°1982826
mashable
Posté le 10-04-2010 à 18:56:11  profilanswer
 

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\/>/';

n°1982830
dozhwal
Posté le 10-04-2010 à 19:02:28  profilanswer
 

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

n°1982831
esox_ch
Posté le 10-04-2010 à 19:05:59  profilanswer
 

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
n°1982833
mashable
Posté le 10-04-2010 à 19:10:26  profilanswer
 

dozhwal a écrit :

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


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

n°1982838
dozhwal
Posté le 10-04-2010 à 19:34:24  profilanswer
 

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
n°1982855
mashable
Posté le 10-04-2010 à 21:08:08  profilanswer
 

Merci encore dozhwal ça marche niquel


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

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

 

Sujets relatifs
[RESOLU] Requete SQL avec variable dynamique sous MS-DOS[Resolu] Détail d'un fichier sous DOS
Macro pour formater un fichier texte ou excel [Résolu][Résolu] Strings remplacées par "p"
[resolu]Requête sortant les produits du même prix à +/- 10%[RESOLU][SQL/ACCESS] Problème jointure
Récupérer les mots séparés par des espaces dans une chaîne de char....liste incremental string [RESOLU]
parser une ligne de commande : problème avec noms génériques de fics 
Plus de sujets relatifs à : [Résolu] Récupérer une information avec un parser


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR