parser en ligne du contenu dynamique

parser en ligne du contenu dynamique - HTML/CSS - Programmation

Marsh Posté le 13-07-2011 à 20:43:56    

Bonjour,
Voici mon problème, il semble classique d'apres ce que j'ai pu voir sur le web mais je n'ai jusque la pas trouvé de réponse satisfaisante :
 
J'aimerais récuperer la base de données d'un site internet dont les données sont accessibles en choisissant une date dans un formulaire. En appuyant sur "OK", la requete se lance et une liste (les données qui m'interessent) s'affiche. Naivement, j'ai pensé qu'il me suffirait de parser en ligne la page web pour récuperer ces données, mais comme il s'agit d'un formulaire javascript, la liste est dynamique et n'apparait donc pas dans le code source. Ma question est donc simple : comment, dans un premier temps, puis-je récuperer, en ligne, ces données ? J'ai besoin de le faire automatiquement car j'aimerais récuperer une liste correspondant a chaque date entrée dans le formulaire, à l'aide d'une espece de boucle, ce sera la 2e étape.
 
Pour résumer, les problèmes auxquels je suis confronté sont les suivants :
1. Parser une page web en ligne
2. Parser du contenu dynamique (qui n'apparait pas dans le code source donc)
3. Operer une boucle sur les valeurs d'entrée d'un formulaire afin de récuperer les données correspondant a chaque valeur entrée dans le formulaire.
 
Je ne vous demande bien sûr pas de solution complète, mais seulement des pistes d'outils qui me permettront de me débrouiller.
 
Merci de votre aide  :)

Reply

Marsh Posté le 13-07-2011 à 20:43:56   

Reply

Marsh Posté le 17-07-2011 à 07:50:06    

milsabor38 a écrit :

Bonjour,
Voici mon problème, il semble classique d'apres ce que j'ai pu voir sur le web mais je n'ai jusque la pas trouvé de réponse satisfaisante :
 
J'aimerais récuperer la base de données d'un site internet dont les données sont accessibles en choisissant une date dans un formulaire. En appuyant sur "OK", la requete se lance et une liste (les données qui m'interessent) s'affiche. Naivement, j'ai pensé qu'il me suffirait de parser en ligne la page web pour récuperer ces données, mais comme il s'agit d'un formulaire javascript, la liste est dynamique et n'apparait donc pas dans le code source. Ma question est donc simple : comment, dans un premier temps, puis-je récuperer, en ligne, ces données ? J'ai besoin de le faire automatiquement car j'aimerais récuperer une liste correspondant a chaque date entrée dans le formulaire, à l'aide d'une espece de boucle, ce sera la 2e étape.
 
Pour résumer, les problèmes auxquels je suis confronté sont les suivants :
1. Parser une page web en ligne
2. Parser du contenu dynamique (qui n'apparait pas dans le code source donc)
3. Operer une boucle sur les valeurs d'entrée d'un formulaire afin de récuperer les données correspondant a chaque valeur entrée dans le formulaire.
 
Je ne vous demande bien sûr pas de solution complète, mais seulement des pistes d'outils qui me permettront de me débrouiller.
 
Merci de votre aide  :)


 
Bonjour.
Pour répondre à tes questions :
 
1. Pour parser une page web, tu entres ceci :
$http_page = file_get_contents($url);
 
Puis ensuite tu dois utiliser les expressions régulières avec preg_* : http://www.siteduzero.com/tutoriel [...] e-1-2.html
http://www.functions-online.com/preg_replace.html
 
2. Là t'as besoins de faire un include de javascript ... donc d'afficher la page.
$page = file_get_contents("http://www.google.com" );
$page = $page."<script language=\"Javascript\" src=\"monscript.js\"></script>";
echo $page;
exit;
 
A la limite, après tu peux faire une redirection avec ton javascript vers ta page php.
 
3. Voici un code :
 
<?php
$txt = "Yo man tu vas bien ?"; // Syntaxe
$mots = explode(" ", $txt); // Explore mots par mots
$count = str_word_count($txt)+1; // Compte le nombre de mots dans la chaîne
for ($i = 0; $i < $count; $i++) {
 echo $mots[$i]."<br>"; // Affiche le mot $i de la chaîne
}
echo "Mot n° 2 : ".$mots[1] // Affiche uniquement le 2ème mot de la chaîne
?>
 
Voilà ! Bonne chance.

Reply

Sujets relatifs:

Leave a Replay

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