Parser une page web ?

LJames23

Nouveau WRInaute
Bonjour,

je voudrais parser une page web pour extraire des données qui s'y trouve (stats de basket : points, rebonds, passes) et les insérer ensuite dans ma base de données. Voila le lien en question : -http://www.lnb.fr/index.php?pid=6&game=1856

Je crois savoir qu'il faut d'abord transformer la page html en xml (ou xhtml ?) pour formatter les balises et ensuite récupérer les valeurs que je veux mais je suis complètement novice en la matière je ne nage complètement. Malgré pas mal de recherche sur le net et très peu de doc, ça reste très flou. Si vous pouvez m'aider en me donnant la marche à suivre ou des liens, voir mieux un ptit tutoriel, ce serait génial. Je vous remercie d'avance d'éclairer ma faible lanterne :wink:
 

LJames23

Nouveau WRInaute
Parsing HTML, c'est à dire ? Si tu pouvais développer un peu, ce serait sympa car j'y connais rien, merci :oops:
 

Zim'

WRInaute impliqué
De la meme maniere qu'il est possible de parser un fichier xml, tu peux parser n'importe quoi!
 

Monty973

WRInaute passionné
Ca dépend quel langage de programmation tu utilises, mais je pense que la plupart d'entre eux ont des librairies de parser HTML.
Je sais qu'en python, il y a le module d'origine HTMLParser
et que d'autre modules comme Beautifoulsoup et ScrapNfeed ont aussi été développés pour cet usage. (je ne les ai pas testé).

Sinon tu peux aussi utiliser les expressions régulières comme le suggère ecocentric
 

karak

WRInaute occasionnel
Bonjour,

Si tu utilises PHP :

Tu récupères le contenu de la page par exemple avec file_get_contents puis tu parses avec des posix (ereg..) et stocke au fur et à mesure dans ta bdd.
 

ludo88

WRInaute discret
personne s'inquiete de savoir si tout betement c'est légal ?

parce que à mon avis ca l'est pas et si tu le fais à mon avis, tu risques des poursuites pour utilisation frauduleuse de données protégées contre le piratage...
 

thierry8

WRInaute accro
ludo88 a dit:
personne s'inquiete de savoir si tout betement c'est légal ?

parce que à mon avis ca l'est pas et si tu le fais à mon avis, tu risques des poursuites pour utilisation frauduleuse de données protégées contre le piratage...
Il ne faut abuser non plus, hein :wink:

Si le site en question indique qu'il est interdit d'utiliser dans ce sens son site Internet, évidemment, personne n'y est autorisé et dans ce cas effectivement il peut avoir un recours en justice.
 

ecocentric

WRInaute accro
Monty973 a dit:
Ca dépend quel langage de programmation tu utilises, mais je pense que la plupart d'entre eux ont des librairies de parser HTML.
Je sais qu'en python, il y a le module d'origine HTMLParser
et que d'autre modules comme Beautifoulsoup et ScrapNfeed ont aussi été développés pour cet usage. (je ne les ai pas testé).

Sinon tu peux aussi utiliser les expressions régulières comme le suggère ecocentric

Si tu dois extraire des informations simples, je te conseille vivement de travailler avec des expressions régulières ou, c'est encore plus simple, avec les fonctions strpos et substr de PHP.

En Python, HTMLParser est une solution, mais il présente le défaut de ne pas être très tolérant face au HTML mal formé. C'est d'ailleurs un problème fréquent pour les analyseurs qui essaient de traiter un document HTML comme un document XML. Je n'ai pas testé Beautifoulsoup mais il paraît qu'il est plus robuste.
 

ecocentric

WRInaute accro
ludo88 a dit:
personne s'inquiete de savoir si tout betement c'est légal ?

parce que à mon avis ca l'est pas et si tu le fais à mon avis, tu risques des poursuites pour utilisation frauduleuse de données protégées contre le piratage...

C'est limite en effet, mais tout dépend d'où vient l'info. S'il recrée un tableau de bord mis à jour périodiquement sur base d'infos fournies par les clubs par exemple, ça me semble moins sensible que s'il va repomper les tableaux présentés sur les sites concurrents.
 

dd32

WRInaute accro
Ce qui m'inquiète ce n'est pas forcément la légalité (il est possible de demander l'autorisation), ce qui m'ennuie c'est si le script de parsing est appelé souvent, cela va prendre de la bande passante...
 

ecocentric

WRInaute accro
dd32 a dit:
Ce qui m'inquiète ce n'est pas forcément la légalité (il est possible de demander l'autorisation), ce qui m'ennuie c'est si le script de parsing est appelé souvent, cela va prendre de la bande passante...

Il faut bien évidemment inclure un système de mise en cache, pour éviter de pomper la bande passante du site analysé (j'ai d'ailleurs écrit "mis à jour périodiquement").
 

scores

WRInaute occasionnel
dd32 a dit:
Ce qui m'inquiète ce n'est pas forcément la légalité (il est possible de demander l'autorisation), ce qui m'ennuie c'est si le script de parsing est appelé souvent, cela va prendre de la bande passante...

Tout à fait d'accord
de plus pour ma part, outre une entente entre parties, je trouve le procédé honteux si aucune demande d'autorisation et de justification n'est formulée.
En gros tu pompes le travail des autres...
 

dd32

WRInaute accro
ecocentric a dit:
Il faut bien évidemment inclure un système de mise en cache, pour éviter de pomper la bande passante du site analysé (j'ai d'ailleurs écrit "mis à jour périodiquement").
+1 pour la mise en cache + la mise à jour régulière
Pardon ecocentric, j'avais pas tout lu... :oops:
J'ai juste rebondi par rapport à une expérience perso.

Pour ma part, il s'agissait de récupérer les heures et hauteurs de marées et le SHOM avait déjà prévu des conditions pour le parsing...
Si la requête était lancée une fois pour une ville ("une marée par ville"), j'enregistrais le résultat afin de ne pas refaire la requête plusieurs fois par jour... :wink:
 

spidetra

WRInaute passionné
ne jouez quand même pas trop aux pères la morale :

- des milliers de bots font ça tout les jours pour des centaines ou des milliers d'applications en tout genre : moteur de recherche, veille, etc...

dans la mesure où le site n'interdit pas son indexation en utilisant un robots.txt, rien de choquant.

Ensuite évidemment :

- il faut toujours respecter : robots.txt => donc donner un nom d'agent et un lien vers une page html pour expliquer aux webmasters comment exclure son bot.

- il faut toujours crawler en mode poli,

- pour les pb de droits d'auteur, c'est à LJames23, d'assumer les risques d'un éventuel procés pour l'utilisation illégale des données qu'il pourrait faire.

rassure-vous détecter l'IP d'un bot coder sans aucune précaution est une tâche très facile !
 

LJames23

Nouveau WRInaute
Merci pour toutes vos réponses, c gentil de tenter de m'aider :D
Pour le côté légal, ne vous en faites pas, le site en question est au courant et les données récupérées (qui ne sont soumises à aucun droit particulier il me semble) ne sont pas pompées pour être réutilisées tel quel comme un vulgaire copier coller. Pour la bande passante, je comptais bien utiliser le cache :wink:
Merci encore pour vos pistes et vos idées :D :wink:
 

Discussions similaires

Haut