recuperer donnees site externe pour mon site

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : recuperer donnees site externe pour mon site

Re: recuperer donnees site externe pour mon site

par loloz3 » 27 oct. 2011, 10:40

Bonjour,
voici mon script php qui fonctionne (tant que mon serveur "pogoplug" fonctionne !) cadeau :D

Code : Tout sélectionner

<?php $dept = $_GET['dept']; $lien='http://loloz3.hd.free.fr/php/vigilance.txt'; $chaine=file_get_contents($lien); $pos=strpos(strtolower($chaine),"($dept)"); if (strpos(strtolower($chaine),'pas de vigilance',$pos)-$pos==7) {$vigilance="Selon Météo France le département $dept n'est pas en vigilance";} if (strpos(strtolower($chaine),'jaune',$pos)-$pos==39) {$vigilance="Selon Météo France le département $dept est en vigilance jaune";} if (strpos(strtolower($chaine),'orange',$pos)-$pos==39) {$vigilance="Selon Météo France le département $dept est en vigilance orange";} if (strpos(strtolower($chaine),'rouge',$pos)-$pos==39) {$vigilance="Selon Météo France le département $dept est en vigilance rouge";} echo $vigilance; ?>
je suis trop nul pour réussir à utiliser correctement "preg_match" si une bonne âme veut bien nous faire partager un solution plus propre et plus simple.
merci :wink:

Re: recuperer donnees site externe pour mon site

par loloz3 » 24 oct. 2011, 12:06

Bonjour,

Je suis aussi très intéressé que ce script... pour une utilisation personnel (Nabaztag)
Je ne suis pas une bête en php... mais peut-être une piste ici => http://www.touteladomotique.com/forum/v ... php?t=1724

Code : Tout sélectionner

wget -v -S --timeout=30 --user-agent="Mozilla/5.0 (Windows; U; Windows NT 6.0; fr; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1" --output-document="vigilance.txt" "http://france.meteofrance.com/vigilance/"
ça fonctionne ! reste à utiliser cron pour récupérer la page 2 fois par jours et un simple preg_match sur title="Hérault (34) : D&eacute;partement en vigilance jaune" dans le fichier vigilance.txt

quand pensez-vous ? il y a plus simple ?

Re: recuperer donnees site externe pour mon site

par moogli » 19 oct. 2011, 16:54

déja t'a mal regardé la doc dans ton cas c'est loadHTML et pas loadHTMLlile

as tu regardé ce que $myhtml avait dans le ventre ?

essais et tu comprendra.

il va falloir être beaucoup plus ingénieux pour cela (socket je pense si l'on peux récupérer les cookies .....)

@+

Re: recuperer donnees site externe pour mon site

par xTG » 19 oct. 2011, 16:24

Moi aussi ce matin en tentant de me connecter j'ai eu une erreur...
Ah ? Si je dis pas laquelle c'était personne ne pourra m'aider ?

Bon beh puisque vous insistez ! Il me disait que mon identifiant ou mon mot de passe était incorrect !
Le bougre ! Comme si je ne connaissais pas mes informations de connexion. :D

Re: recuperer donnees site externe pour mon site

par dYp » 19 oct. 2011, 15:34

voila mon essai avec dom... erreur.
<?php
$myhtml = file_get_contents ('http://france.meteofrance.com/vigilance/Bulletin?ZONE=DEPT11');
$doc = new DOMDocument();
$doc->loadHTMLfile($myhtml);
$tags = $doc->getElementsByTagName('span');
foreach ($tags as $tag) {
       echo $tag->getAttribute('href').' | '.$tag->nodeValue."\n";
}
?>

Re: recuperer donnees site externe pour mon site

par moogli » 19 oct. 2011, 12:10

salut,

http://php.net/dom

dans ton cas directement http://www.php.net/manual/fr/class.domdocument.php
par exemple
<?php
$dom = new DOMDocument('1.0', 'iso-8859-1'); // bon faut voir l'encodage ^^
$dom->loadHTMLFile('le chemin du fichier html'); // voir si fonctionne avec une url
?>
après utilisationde xpath avec http://www.php.net/manual/fr/domxpath.query.php

te reste a regarder les exemples et formuler la requete xpath qui va bien.

@+

Re: recuperer donnees site externe pour mon site

par dYp » 18 oct. 2011, 17:37

j'ai aussi essayé ça :
<?php
$page = 'http://france.meteofrance.com/vigilance/Bulletin?ZONE=DEPT11';
$texte = file_get_contents($page);
preg_match('#<td class="texte12_bull" colspan="1" rowspan="1"><b>(?<couleur>[^<]+)</b><br>#', $texte, $vigilance);
echo $vigilance['couleur'];
?>

Re: recuperer donnees site externe pour mon site

par Invité » 18 oct. 2011, 17:29

petite info supplémentaire,
j'ai ça comme code HTML :
<!-- CADRE INFO VIGILANCE --><table class="taille495" cellpadding="0" cellspacing="0"><tbody><tr><td class="texte12_bull" colspan="1" rowspan="1"><b><span style="background-color: rgb(40, 215, 97);">Département en vigilance verte.</span></b><br>
Pas de vigilance particulière.
</td></tr></tbody></table>
et je cherche à récupérer le contenu du td class text12_bull

merci pour l'aide.

Re: recuperer donnees site externe pour mon site

par dyp » 18 oct. 2011, 16:57

bonjour à nouveau,
le DOMDoc me pose des problèmes. j'ai tenté ça sans résultat.
<?php
	function recup_couleur($url)
	{
		$source = file_get_contents($url);
		$resultat = preg_match('#>Département en vigilance (?<couleur>[^<]+)</span></b><br>#', $source, $couleur);
	}
	
	$couleur = recup_couleur('http://france.meteofrance.com/vigilance/Bulletin?ZONE=DEPT11');
	echo "D&eacute;partement en vigilance $couleur";
?>
des idées vous avez ?

Re: recuperer donnees site externe pour mon site

par xTG » 12 oct. 2011, 09:27

Pour parser du HTML : DOMDocument ;)

Re: recuperer donnees site externe pour mon site

par dYp » 12 oct. 2011, 08:34

je reviens à la charge, j'ai demandé à MétéoFrance, nous avons autorisation de récupérer dans la page web de la carte vigilance.
du coup je cherche à récupérer l'info de couleur pour la retranscrire. elle est donnée ici :
<td class="texte12_bull" colspan="1" rowspan="1"><b><span style="background-color: rgb(40, 215, 97);">Département en vigilance verte.</span></b><br>
Pas de vigilance particulière.
</td>
il faut que je fasse un if sur la couleur pour afficher un cadre vert si vigilance verte etc..
une idée ?

Re: recuperer donnees site externe pour mon site

par xTG » 03 oct. 2011, 21:52

meteo-france ne diffuse pas ses contenus sous licence GPL, donc tu ne peux les réexploiter même en mettant ton projet en licence GPL.
Ton seul moyen est de leur demander une licence spéciale, qui sera à mon avis surement payante.

Re: recuperer donnees site externe pour mon site

par dYp » 03 oct. 2011, 21:05

zt si c'était pour un bn site GPL open source gentil ? tu ferais comment ? :)

Re: recuperer donnees site externe pour mon site

par xTG » 03 oct. 2011, 20:34

En fait je pensais à cette partie :
Au titre de la présente licence, est exclusivement concédé:
un droit d'usage privé, individuel, personnel et non transmissible sur le contenu du site ou de l'un de ses éléments.
Et plus loin :
par le mécanisme des liens, sont interdites notamment la présentation d'une page de ce site dans un cadre n'appartenant pas à METEO-FRANCE et l'insertion d'une image appartenant à METEO-FRANCE dans une page ne lui appartenant pas.
l'extraction répétée et systématique d'éléments même non protégés du site causant un préjudice à METEO-FRANCE.
Ton météorologue amateur a soit une licence spéciale décernée par meteo-france, soit il déroge à cette licence et pourrait occasionner des poursuites. :)

En gros meteo-france interdit la récupération des informations qu'ils délivrent sur leur site pour un autre but que du visionnage personnel.

Re: recuperer donnees site externe pour mon site

par dYp » 03 oct. 2011, 19:39

merci de m'avoir mis au courant, je compte laisser les copyrights comme sur le site suivant.
http://www.meteo17angliers.fr/
le proprio du site ne veut pas partager son script et j'ai des difficultés.