Aller au contenu

Parser une page


Sujets conseillés

Posté (modifié)

Bonjour je viens de découvrir qu'il est possible de parse des pages internet

j'avoue que je suis perdu personne n'aurais un petit coup de pouce a me donner pour récupérer par exemple sur la page suivante :

http://www.quid.fr/communes.html?mode=deta...amp;style=fiche

les info suivantes :

Nom de la commune : Lisle-en-Rigault

Superficie : 1054 hectares

Altitude : 187 mètres

et les enregistrer dans un fichier

idem pour toutes les communes

sachant que je peux avoir la liste des communes (qui est la variable de la regete).

Modifié par stever34
Posté (modifié)

Salut,

Je ne pense pas que le site du Quid appréciera plus de 36.000 requêtes comme ça...

Tu risques de rencontrer quelques soucis...

PS : Si tu continues dans ce sens, utilise preg_match et familiarise toi avec les Regex...

Modifié par Bourinho
Posté

Le theme parser n'est peut etre pas bon, on tous cas ce que je veux faire c'est enregistrée des info d'un site pour construire une base de donnée.

si quelqu'un a un exemple de methode pour enregistrer des info d'un page avec le script je devrai pouvoir l'adapter a mon cas.

Posté

A titre d'info, les gens du site en question t'ont-ils donné une autorisation quelconque pour recopier une partie de leur base de données ?

xpatval

Posté

(Nom mais c'est pour avoir un exemple)

ce la peut s'adapter au loto

ou meme a son propre site perso, le but étant de connaitre la méthode du parsing appliqué a un exemple.

Les info intéressantes a récupérer sont :

<table class="donneesprincipales">
<tr>
<td><h4>Nom de la commune</h4><strong>Lisle-en-Rigault</strong></td>
<td><h4>Région</h4><a href="./regions.html?mode=detail&reg=57" title="fiche de la région">Lorraine</a></td>
<td><h4>Département</h4><a href="./departements.html?mode=detail&dep=55&style=fiche" title="fiche du département">Meuse</a> (55)</td>

<td><h4>Code postal</h4><a href="./communes.html?mode=query&req=55000&style=fiche&zoom=1" title="toutes les communes ayant ce code postal">55000</a></td>
</tr>
</table>

Il faut donc analyser avec un script : parser.php

<?php
class parser {

var $filename;

function parser($filename) {
$this->filename=$filename;
}

function get_nom_commune() {
$file=fopen($this->filename,"r");
if (!$file) { echo "<p>Impossible d'ouvrir le fichier</p>.\n"; exit; }
$line=fgets($file,1024);
while(!strstr($line,"Nom de la commune")) {
$line=fgets($file,1024);
}
fclose($file);
ereg("<br>(<strong>[alpha]-[alpha]</strong>)</b>",$line,$no);
return $no[1];
}

}
?>

puis l'afficher page.php

<?php 
require "parser.php";
$parser=new parser("http://www.quid.fr/communes.html?mode=detail&id=21332&req=Lis&style=fiche ");
?>

<html>
<head>
<title>Nom commune</title>
</head>
<body>
<center>
<h1>Le nom est</h1>
<h2><font color="blue"><?php echo $parser->get_nom_commune(); ?></font></h2>
<h2>1er exemple</h2>

</center>
</body>
</html>

Mais ca marche pas SOS

Posté

Sur la page externe a mon site (serveur)

http://www.quid.fr/communes.html?mode=deta...amp;style=fiche

je tente de trouver dans le code source (html) de la page la ligne qui contient le mot clef "Nom de la commune"

  $line=fgets($file,1024);
while(!strstr($line,"Nom de la commune"))

en suite je tente de recupérer dans cette ligne les caractères contenus entre les balises <strong>

 ereg("
(<strong>[alpha]-[alpha]</strong>)</b>",$line,$no);

pour enfin afficher le nom de la commune grace a la variable $parser (sur mon site)

echo $parser->get_nom_commune();

Posté

L'obtention de données de cette manière s'apparentant à du plagiat, je ferme ce post car le Hub ne te donnera pas la solution pour ainsi t'accaparer le travail des autres.

C'est manquer de la plus élémentaire des corrections. Tu sembles démarrer bien mal ton aventure de webmaster.

Dan

Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.
×
×
  • Créer...