Récuperation données curl

symbol

Membre actif
13 Octobre 2004
536
25
Bonjour

Un ami (dont je n'ai plus les coordonnées) m'a fait un script, dont cette ligne de code pour récupérer les N° du tirage du Keno (de la FDJ), puis les afficher dans le terminal.

winningNumbers=$(curl -s 'https://www.fdj.fr/jeux/jeux-de-tirage/keno/resultats' | grep -i '<div class="keno_numeros mb10 fl sprite-jeux-bg_resultat_keno">' -s | tr "<" "\n" | grep 'p class="keno_num">' | sed -e 's/^.*>//' | tr "\n" " " | sed 's/^/ /' | sed 's/ 1 / 01 /' ${winningNumbers} | sed 's/ 2 / 02 /' ${winningNumbers} | sed 's/ 3 / 03 /' ${winningNumbers} | sed 's/ 4 / 04 /' ${winningNumbers} | sed 's/ 5 / 05 /' ${winningNumbers} | sed 's/ 6 / 06 /' ${winningNumbers} | sed 's/ 7 / 07 /' ${winningNumbers} | sed 's/ 8 / 08 /' ${winningNumbers} | sed 's/ 9 / 09 /' ${winningNumbers} )

Cela fonctionnait parfaitement, mais depuis 2 jours plus rien ne se passe, je ne vois plus les N° extraits. J'ai meme l'inpression qu'il ne pas extrait du tout (mais la page qui contient les données, elle est bien downloadée)

Etant mon niveau nullissime en programmation, je peux malheureusement pas mofidier cette ligne afin de resoudre le problème.

Quelqu'un aurait-il la gentillesse de m'indiquer ce qu'il faut modifier afin que cela fonctionne a nouveau ?

Merci
 
Petite question en passant... Il te donne normalement les numéros avant ou après le tirage ?

je suis plus là :bag:
 
SI je comprends bien la question : le script m'affichait dans le terminal les N° (le tirage) qui etait le dernier en date. A moi de me lancer le script (juste après le tirage) pour recevoir les nouveaux N°.
 
Peux-tu tester cette version ?

Bloc de code:
winningNumbers=$(curl -s 'https://www.fdj.fr/jeux/jeux-de-tirage/keno/resultats' | iconv -f 'iso-8859-15' -t 'UTF-8' | grep -i '<div class="keno_numeros mb10 fl sprite-jeux-bg_resultat_keno">' -s | tr "<" "\n" | grep 'p class="keno_num">' | sed -e 's/^.*>//' | tr "\n" " " | sed 's/^/ /' | sed 's/ 1 / 01 /' ${winningNumbers} | sed 's/ 2 / 02 /' ${winningNumbers} | sed 's/ 3 / 03 /' ${winningNumbers} | sed 's/ 4 / 04 /' ${winningNumbers} | sed 's/ 5 / 05 /' ${winningNumbers} | sed 's/ 6 / 06 /' ${winningNumbers} | sed 's/ 7 / 07 /' ${winningNumbers} | sed 's/ 8 / 08 /' ${winningNumbers} | sed 's/ 9 / 09 /' ${winningNumbers} )

J'ai rajouté une conversion en UTF8 car sinon le grep ne fonctionnait pas ...
iconv -f 'iso-8859-15' -t 'UTF-8'
 
Donc, j'ai bien récupéré les N° :) mais, ... ca affiche 2 tirages (au lieu du dernier seulement, qui est composé de 20 N° seulement) o_O

Le dernier tirage ce sont les N° de 02 a 70, tous le reste etant le tirage d'avant (donc inutile)

TIRAGE 04-02-18 13h52 : 02 05 08 12 14 19 20 21 23 25 26 28 29 30 33 41 48 53 69 70 2 07 14 20 21 24 25 27 28 29 35 36 39 53 56 58 59 64 66 69
 
Bloc de code:
winningNumbers=$(curl -s 'https://www.fdj.fr/jeux/jeux-de-tirage/keno/resultats' | iconv -f 'iso-8859-15' -t 'UTF-8' | grep -i '<div class="keno_numeros mb10 fl sprite-jeux-bg_resultat_keno">' | sed 's/.*sprite-jeux-bg_resultat_keno">\(.*\)<\/div><br class="sp".*/\1/' | sed 's/<p class="keno_num">/ /g' | sed 's/ \([0-9]\)<\/p>/ 0\1/g' | sed 's/<\/p>//g' | sed 's/^ //g' | head -1)

winningNumbers=$(curl -s 'https://www.fdj.fr/jeux/jeux-de-tirage/keno/resultats' | iconv -f 'iso-8859-15' -t 'UTF-8' | grep -i '<div class="keno_numeros mb10 fl sprite-jeux-bg_resultat_keno">' | sed 's/.*sprite-jeux-bg_resultat_keno">\(.*\)<\/div><br class="sp".*/\1/' | sed 's/<p class="keno_num">/ /g' | sed 's/ \([0-9]\)<\/p>/ 0\1/g' | sed 's/<\/p>//g' | sed 's/^ //g' | head -1)

echo $winningNumbers
02 05 08 12 14 19 20 21 23 25 26 28 29 30 33 41 48 53 69 70
 
finalement, j'ai mis les mains dans le camboui.

J'ai modifié la ligne comme suivant :

winningNumbers=$(curl -s 'https://www.fdj.fr/jeux/jeux-de-tirage/keno/resultats' | iconv -f 'iso-8859-15' -t 'UTF-8' | grep -i '<div id="ajax-dest-calcul">' -s | tr "<" "\n" | grep 'p class="keno_num">' | sed -e 's/^.*>//' | tr "\n" " " | sed 's/^/ /' | sed 's/ 1 / 01 /' ${winningNumbers} | sed 's/ 2 / 02 /' ${winningNumbers} | sed 's/ 3 / 03 /' ${winningNumbers} | sed 's/ 4 / 04 /' ${winningNumbers} | sed 's/ 5 / 05 /' ${winningNumbers} | sed 's/ 6 / 06 /' ${winningNumbers} | sed 's/ 7 / 07 /' ${winningNumbers} | sed 's/ 8 / 08 /' ${winningNumbers} | sed 's/ 9 / 09 /' ${winningNumbers} )

du coup, ca cherche les N° dans la page des que ca trouve "<div id="ajax-dest-calcul">" comme repère.
Et comme <div id="ajax-dest-calcul"> est unique dans la page, pas de doublons trouvés :)

Merci infiniment :) :)
 
J'ai oublié :

Les résultats sont récupérer a dans cette ligne

//]]></script> <a href='/page/appli-fdj/titre/appli-fdj' onclick='return tc_events_3(this,"autopromo_click",{"campagne_id":"3161","campagne_name":"Operation_Branding_Appli-Fdj","game_name":"Appli-Fdj","game_format":"Header","game_position":""});'><img alt='' src='https://media.fdj.fr/generated/media/ARTICLE/media_20705-1496418693.jpg' width='710' height='199' /></a></div></div></div><div class="resultats-ergo resultats-ergo-keno"><img alt='Trait bleu' src='https://media.fdj.fr/generated/media/VIGNETTE/trait_bleu_6497-1344841406.png' width='700' height='4' /><div class="liste-tirage form-new-charte"><label class="txtLabel fl">Historique des tirages</label><div class="form-select fl"><select name="liste" id="selectTirage" class="txtSelect" onchange='FDJ_tag("keno_resultats_recherchetirage");'><option value="2018069">Dernier tirage</option><option value="2018069">Dimanche 04/02/2018 - Midi</option><option value="2018068">Samedi 03/02/2018 - Soir</option><option value="2018067">Samedi 03/02/2018 - Midi</option><option value="2018066">Vendredi 02/02/2018 - Soir</option><option value="2018065">Vendredi 02/02/2018 - Midi</option><option value="2018064">Jeudi 01/02/2018 - Soir</option><option value="2018063">Jeudi 01/02/2018 - Midi</option><option value="2018062">Mercredi 31/01/2018 - Soir</option><option value="2018061">Mercredi 31/01/2018 - Midi</option><option value="2018060">Mardi 30/01/2018 - Soir</option><option value="2018059">Mardi 30/01/2018 - Midi</option><option value="2018058">Lundi 29/01/2018 - Soir</option><option value="2018057">Lundi 29/01/2018 - Midi</option><option value="2018056">Dimanche 28/01/2018 - Soir</option><option value="2018055">Dimanche 28/01/2018 - Midi</option><option value="2018054">Samedi 27/01/2018 - Soir</option><option value="2018053">Samedi 27/01/2018 - Midi</option><option value="2018052">Vendredi 26/01/2018 - Soir</option><option value="2018051">Vendredi 26/01/2018 - Midi</option><option value="2018050">Jeudi 25/01/2018 - Soir</option><option value="2018049">Jeudi 25/01/2018 - Midi</option><option value="2018048">Mercredi 24/01/2018 - Soir</option><option value="2018047">Mercredi 24/01/2018 - Midi</option><option value="2018046">Mardi 23/01/2018 - Soir</option><option value="2018045">Mardi 23/01/2018 - Midi</option><option value="2018044">Lundi 22/01/2018 - Soir</option><option value="2018043">Lundi 22/01/2018 - Midi</option><option value="2018042">Dimanche 21/01/2018 - Soir</option><option value="2018041">Dimanche 21/01/2018 - Midi</option><option value="2018040">Samedi 20/01/2018 - Soir</option><option value="2018039">Samedi 20/01/2018 - Midi</option><option value="2018038">Vendredi 19/01/2018 - Soir</option><option value="2018037">Vendredi 19/01/2018 - Midi</option><option value="2018036">Jeudi 18/01/2018 - Soir</option><option value="2018035">Jeudi 18/01/2018 - Midi</option><option value="2018034">Mercredi 17/01/2018 - Soir</option><option value="2018033">Mercredi 17/01/2018 - Midi</option><option value="2018032">Mardi 16/01/2018 - Soir</option><option value="2018031">Mardi 16/01/2018 - Midi</option><option value="2018030">Lundi 15/01/2018 - Soir</option><option value="2018029">Lundi 15/01/2018 - Midi</option><option value="2018028">Dimanche 14/01/2018 - Soir</option><option value="2018027">Dimanche 14/01/2018 - Midi</option><option value="2018026">Samedi 13/01/2018 - Soir</option><option value="2018025">Samedi 13/01/2018 - Midi</option><option value="2018024">Vendredi 12/01/2018 - Soir</option><option value="2018023">Vendredi 12/01/2018 - Midi</option><option value="2018022">Jeudi 11/01/2018 - Soir</option><option value="2018021">Jeudi 11/01/2018 - Midi</option><option value="2018020">Mercredi 10/01/2018 - Soir</option><option value="2018019">Mercredi 10/01/2018 - Midi</option><option value="2018018">Mardi 09/01/2018 - Soir</option><option value="2018017">Mardi 09/01/2018 - Midi</option><option value="2018016">Lundi 08/01/2018 - Soir</option><option value="2018015">Lundi 08/01/2018 - Midi</option><option value="2018014">Dimanche 07/01/2018 - Soir</option><option value="2018013">Dimanche 07/01/2018 - Midi</option><option value="2018012">Samedi 06/01/2018 - Soir</option><option value="2018011">Samedi 06/01/2018 - Midi</option><option value="2018010">Vendredi 05/01/2018 - Soir</option><option value="2018009">Vendredi 05/01/2018 - Midi</option><option value="2018008">Jeudi 04/01/2018 - Soir</option><option value="2018007">Jeudi 04/01/2018 - Midi</option><option value="2018006">Mercredi 03/01/2018 - Soir</option><option value="2018005">Mercredi 03/01/2018 - Midi</option><option value="2018004">Mardi 02/01/2018 - Soir</option><option value="2018003">Mardi 02/01/2018 - Midi</option><option value="2018002">Lundi 01/01/2018 - Soir</option><option value="2018001">Lundi 01/01/2018 - Midi</option><option value="2017730">Dimanche 31/12/2017 - Soir</option><option value="2017729">Dimanche 31/12/2017 - Midi</option><option value="2017728">Samedi 30/12/2017 - Soir</option><option value="2017727">Samedi 30/12/2017 - Midi</option><option value="2017726">Vendredi 29/12/2017 - Soir</option><option value="2017725">Vendredi 29/12/2017 - Midi</option><option value="2017724">Jeudi 28/12/2017 - Soir</option><option value="2017723">Jeudi 28/12/2017 - Midi</option><option value="2017722">Mercredi 27/12/2017 - Soir</option><option value="2017721">Mercredi 27/12/2017 - Midi</option><option value="2017720">Mardi 26/12/2017 - Soir</option><option value="2017719">Mardi 26/12/2017 - Midi</option><option value="2017718">Lundi 25/12/2017 - Soir</option><option value="2017717">Lundi 25/12/2017 - Midi</option><option value="2017716">Dimanche 24/12/2017 - Soir</option><option value="2017715">Dimanche 24/12/2017 - Midi</option><option value="2017714">Samedi 23/12/2017 - Soir</option><option value="2017713">Samedi 23/12/2017 - Midi</option><option value="2017712">Vendredi 22/12/2017 - Soir</option><option value="2017711">Vendredi 22/12/2017 - Midi</option><option value="2017710">Jeudi 21/12/2017 - Soir</option><option value="2017709">Jeudi 21/12/2017 - Midi</option><option value="2017708">Mercredi 20/12/2017 - Soir</option><option value="2017707">Mercredi 20/12/2017 - Midi</option><option value="2017706">Mardi 19/12/2017 - Soir</option><option value="2017705">Mardi 19/12/2017 - Midi</option><option value="2017704">Lundi 18/12/2017 - Soir</option><option value="2017703">Lundi 18/12/2017 - Midi</option><option value="2017702">Dimanche 17/12/2017 - Soir</option><option value="2017701">Dimanche 17/12/2017 - Midi</option><option value="2017700">Samedi 16/12/2017 - Soir</option><option value="2017699">Samedi 16/12/2017 - Midi</option><option value="2017698">Vendredi 15/12/2017 - Soir</option><option value="2017697">Vendredi 15/12/2017 - Midi</option><option value="2017696">Jeudi 14/12/2017 - Soir</option><option value="2017695">Jeudi 14/12/2017 - Midi</option><option value="2017694">Mercredi 13/12/2017 - Soir</option><option value="2017693">Mercredi 13/12/2017 - Midi</option><option value="2017692">Mardi 12/12/2017 - Soir</option><option value="2017691">Mardi 12/12/2017 - Midi</option><option value="2017690">Lundi 11/12/2017 - Soir</option><option value="2017689">Lundi 11/12/2017 - Midi</option><option value="2017688">Dimanche 10/12/2017 - Soir</option><option value="2017687">Dimanche 10/12/2017 - Midi</option><option value="2017686">Samedi 09/12/2017 - Soir</option><option value="2017685">Samedi 09/12/2017 - Midi</option><option value="2017684">Vendredi 08/12/2017 - Soir</option><option value="2017683">Vendredi 08/12/2017 - Midi</option><option value="2017682">Jeudi 07/12/2017 - Soir</option><option value="2017681">Jeudi 07/12/2017 - Midi</option><option value="2017680">Mercredi 06/12/2017 - Soir</option><option value="2017679">Mercredi 06/12/2017 - Midi</option></select></div></div><div class="resultats-rapports resultats-rapports-keno fl"><div id="ajax-dest-calcul"><div class="resultats-tirage resultats-tirage-keno"><h3 class="dateTirage mt20 fl">Dimanche 04 février 2018<span>&nbsp;-&nbsp;Midi</span></h3><a href='#' id='2018069' title='voir la vid&eacute;o du tirage' class='video-tirage fr mt30 mr5' onclick='FDJ_tag("keno_resultats_videotirage");' name="2018069">Vid&eacute;o du tirage</a><br class="sp" /><p class="txt16g multiplicateur">Multiplicateur : <strong>x2</strong></p><hr /><div class="fl mt10 logoGame" style="margin-left: 144px;"><img alt='' src='https://media.fdj.fr/generated/media/ARTICLE/logo_5672-1484234052.png' width='76' height='41' /></div><div class="keno_numeros mb10 fl sprite-jeux-bg_resultat_keno"><p class="keno_num">2</p><p class="keno_num">5</p><p class="keno_num">8</p><p class="keno_num">12</p><p class="keno_num">14</p><p class="keno_num">19</p><p class="keno_num">20</p><p class="keno_num">21</p><p class="keno_num">23</p><p class="keno_num">25</p><p class="keno_num">26</p><p class="keno_num">28</p><p class="keno_num">29</p><p class="keno_num">30</p><p class="keno_num">33</p><p class="keno_num">41</p><p class="keno_num">48</p><p class="keno_num">53</p><p class="keno_num">69</p><p class="keno_num">70</p></div><br class="sp" /><div class="jackpotKeno"></div><div class='tirage_joker_plus_container' style='display:none'><p class="tirage_joker_plus">JOKER+<sup>&reg;</sup><span class="pl10">8 870 418</span></p><a href='/jeux/jeux-de-tirage/jokerplus/regles' class='link_joker_plus'>En savoir plus</a><br class="sp" /></div></div><div class="rapports-gains"><div class='accordeons'><div class='tab-rapports'><a href='#' onclick='onclick;return false;'>Tableau des gains</a></div><div><div id='rapports-gains'><table class="tableErgo tableErgoGNK" cellspacing="0"><thead><tr><th colspan="2" class="noBorder">Par Grille</th><th colspan="5" class="noBorder">Gains par mise</th></tr><tr><th>N&deg;<br />


Je souhaite extraire aussi la date du tirage (dans le cas présent c'etait "Dimanche 04 février 2018 Midi" ) .
Peux tu me dire ce qu'il faut ajouter a la ligne (ci dessous)


winningNumbers=$(curl -s 'https://www.fdj.fr/jeux/jeux-de-tirage/keno/resultats' | iconv -f 'iso-8859-15' -t 'UTF-8' | grep -i '<div class="keno_numeros mb10 fl sprite-jeux-bg_resultat_keno">' | sed 's/.*sprite-jeux-bg_resultat_keno">\(.*\)<\/div><br class="sp".*/\1/' | sed 's/<p class="keno_num">/ /g' | sed 's/ \([0-9]\)<\/p>/ 0\1/g' | sed 's/<\/p>//g' | sed 's/^ //g' | head -1)


pour que ca se fasse ?
Je souhaite que ca donne par exemple : Dimanche 04 février 2018 Midi + N° du tirage

merci
 
Dernière édition:
Bloc de code:
winningNumbers=$(curl -s 'https://www.fdj.fr/jeux/jeux-de-tirage/keno/resultats' | iconv -f 'iso-8859-15' -t 'UTF-8' | grep -i '<div class="keno_numeros mb10 fl sprite-jeux-bg_resultat_keno">' | sed 's/.*<h3 class="dateTirage mt20 fl">\(.*\)<span>&nbsp;-&nbsp;\(.*\)<\/span><\/h3>.*sprite-jeux-bg_resultat_keno">\(.*\)<\/div><br class="sp".*/\1 - \2 : \3/' | sed 's/<p class="keno_num">/ /g' | sed 's/ \([0-9]\)<\/p>/ 0\1/g' | sed 's/<\/p>//g' | sed 's/^ //g' | head -1)

Tu peux même enlever le "head 1" pour avoir les deux derniers tirages
 
merci ! :)

le dernier tirage me suffit. De plus, une partie du script que j'utilise, calcul aussi les gains, il me faut donc uniquement le dernier tirage.

Est-il possible d'afficher sur 2 lignes la date + les numeros ?
ca donnerait :
Dimanche 04 février 2018 - Soir :
06 07 12 18 22 23 26 35 37 41 45 47 49 51 55 59 60 61 62 66

autre question,
Peut on exporter les données générés par le terminal grace au script (tirage + calcul des gains) vers une page web avec la commande curl ? o_O

en vous remerciant de votre aide
 
Dernière édition:
Il suffit de rajouter un \n pour avoir un retour à la ligne.

Il est possible de créer une page web à partir du résultat. Exemple:
Bloc de code:
echo "contenu de la page" > page.html
Après, il s’agira d’une page en local. Et il faudra construire les différentes parties de ta page
 
merci de ta réponse.

le code complet est

if [ "${winningNumbers}" = "" ] ; then
winningNumbers=$(curl -s 'https://www.fdj.fr/jeux/jeux-de-tirage/keno/resultats' | iconv -f 'iso-8859-15' -t 'UTF-8' | grep -i '<div class="keno_numeros mb10 fl sprite-jeux-bg_resultat_keno">' | sed 's/.*<h3 class="dateTirage mt20 fl">\(.*\)<span>&nbsp;-&nbsp;\(.*\)<\/span><\/h3>.*sprite-jeux-bg_resultat_keno">\(.*\)<\/div><br class="sp".*/\1 - \2 : \3/' | sed 's/<p class="keno_num">/ /g' | sed 's/ \([0-9]\)<\/p>/ 0\1/g' | sed 's/<\/p>//g' | sed 's/^ //g' | head -1)
fi


# Main
clear
echo "${winningNumbers}"

mais du coup ou placer le "\n" ???

J'imagine qu'il faut le placer quelquepart la-dedans
| sed 's/.*<h3 class="dateTirage mt20 fl">\(.*\)<span>&nbsp;-&nbsp;\(.*\)<\/span><\/h3>.*sprite-jeux-bg_resultat_keno">\(.*\)<\/div><br class="sp".*/\1 - \2 : \3/' |
 
marche pas.

Ca affiche
Dimanche 04 février 2018 - Soir :n 06 07 12 18 22 23 26 35 37 41 45 47 49 51 55 59 60 61 62 66
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
 
Effectivement, la version sed de macOS a beaucoup de mal avec ce type de caractère.

Voici une version corrigée qui affiche bien ce que tu veux et sur deux lignes. Mais tu ne pourras pas utiliser la commande echo pour afficher le résultat sur deux lignes
Bloc de code:
winningNumbers=$(curl -s 'https://www.fdj.fr/jeux/jeux-de-tirage/keno/resultats' | iconv -f 'iso-8859-15' -t 'UTF-8' | grep -i '<div class="keno_numeros mb10 fl sprite-jeux-bg_resultat_keno">' | sed $'s/.*<h3 class="dateTirage mt20 fl">\(.*\)<span>&nbsp;-&nbsp;\(.*\)<\/span><\/h3>.*sprite-jeux-bg_resultat_keno">\(.*\)<\/div><br class="sp".*/\\1 - \\2 :\\\n\\3/' | sed 's/<p class="keno_num">/ /g' | sed 's/ \([0-9]\)<\/p>/ 0\1/g' | sed 's/<\/p>//g' | sed 's/^ //g' | head -2)
printf "$winningNumbers\n"
 
Bonjour, je reviens vers vous .

J'utilise cette commande pour ramener des données :

curl -s 'http://kenopronos.free-bb.eu/sujet-...z-Vos-Pronos-Pour-Le-Prochain-Tirage-Ici.html' | iconv -f 'iso-8859-15' | sed 's/ <div class="reply[0-9][0-9][0-9][0-9][0-9][0-9][0-9]">//' | sed 's/<\/div>//' | sed 's/<br \/>//' | grep -E '@' | grep -Ev '#|}|{'| sort > /Users/xxx/Desktop/TESTPRONOSDL.txt

Les données sont sauvegardées dans un fichier texte.

Lorsque j'edite ce fichier, je me retrouve avec un point d'interrogation a l'envers a la fin de certaines lignes ;(

Capture_d_e_cran_2018_02_20_a_18_09_28.png


Comment retirer ce point d'interrogation génant ?

Merci.
 
Dernière édition: