Parser une page web.

Résolu
cs_dezeque Messages postés 14 Date d'inscription jeudi 21 mars 2002 Statut Membre Dernière intervention 9 février 2005 - 7 févr. 2005 à 21:29
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 - 9 févr. 2005 à 20:15
hello, j'aimerai savoir comment faire pour parser une page de requete google afin de sortir le nombre de resultat.

DeZeQuE

6 réponses

coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
9 févr. 2005 à 13:26
Sinon, la version regexp:

<?php

$fp = @fopen ('http://www.google.ch/search?hl=fr&q=test&btnG=Rechercher&meta=', 'r');

if( !$fp )

die( 'Erreur lors de l\'ouverture de la page' );



$buffer = '';

while( !feof( $fp ) )

$buffer .= fgets( $fp, 4096 );



preg_match( "/sur un total d'environ[ ]\([[:digit:]']+)?/i", $buffer, $matches );



if( isset($matches[1]) && !empty( $matches[1] ) )

echo $matches[1];

else

die( 'Non trouvé' );

?>


@++



R@f


www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
3
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
9 févr. 2005 à 20:15
C'est plus propre, je trouve mieux que des substr, strpos...



@++



R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
3
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
9 févr. 2005 à 11:49
Salut!

Tu charge la page via un fopen, ensuite, tu étudie la page de google voir comment est exprimer le résultat.



Si tu aime pas les regexp:

Voici un exemple de la partie qui contient le nb de résultats:

sur un total d'environ <b>261&nbsp;000&nbsp;000</b>



Donc, je pense, que tu commence par faire un strpos sur ta chaine avec 'sur un total d'environ', ensuite tu fais un substr pour ne garder que: '<b>261&nbsp;000&nbsp;000</b>...'



Tu recherche la position du et tu fais un substr, il te reste donc:

<b>261&nbsp;000&nbsp;000</b>



Pis ensuite, tu y es...



Si tu aime les regexp, tu peux en faire une belle, ca sera moins du bricolage, mais le résultat sera le même...



@++



R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
0
cs_dezeque Messages postés 14 Date d'inscription jeudi 21 mars 2002 Statut Membre Dernière intervention 9 février 2005
9 févr. 2005 à 12:44
voila ce ke ja'i fais :
<?
$handle = fopen ("http://www.google.ch/search?hl=fr&q=dezeque.com%2C&meta=", "r");
$tot = strpos ($handle,"environ");
$rest = substr($tot, 11,3);
echo $rest;
?>

et bien sur ca ne marche..pas, peux tu m'aider ? enfaite ma page n'affiche rien. pas d'erreur mais rien.

merci d'avance...

DeZeQuE
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
9 févr. 2005 à 13:20
Salut!

Voici un tit exemple:



<?php

$fp = @fopen ('http://www.google.ch/search?hl=fr&q=test&btnG=Rechercher&meta=', 'r');

if( !$fp )

die( 'Erreur lors de l\'ouverture de la page' );



$buffer = '';

while( !feof( $fp ) )

$buffer .= fgets( $fp, 4096 );



$pos = strpos( $buffer, 'sur un total d\'environ' );

if( $pos === false )

die( 'Chaine non-trouvée' );



$pos2 = strpos( $buffer, '', $pos );

if( $pos2 === false )

die( 'Chaine non-trouvée' );



$buffer = str_replace('', '', substr( $buffer, $pos + 22, $pos2 - $pos - 22) );



echo $buffer;

?>



@++



R@f



P.S. Tu avais oublié de lire la page avec fgets après le fopen...

www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
0
cs_dezeque Messages postés 14 Date d'inscription jeudi 21 mars 2002 Statut Membre Dernière intervention 9 février 2005
9 févr. 2005 à 19:58
merci bcp ca marche !!! je suis vraiment un debutant... lol

dis moi que entend tu par regexp ? c mieux ?

DeZeQuE
0
Rejoignez-nous