• Home
    • Home
    • Wouf's Blog
    • Bibliowouf
    • Boutique TShirt
    • Sponsoring
    • Politique de confidentialié
  • Math
    • Math au collège
    • Applis et boutiques
    • Cours particuliers
  • Jeux
    • Echecs
    • Poker
    • Des chiffres et des lettres
    • Dogs and cats (mastermind)
    • boggle - version Anglaise
    • boggle - version Française
  • Info
    • Console Python
    • SVG EDIT
    • fond d'écran
    • Prénom en chinois
    • Boite à outils
    • Mes Logiciels
    • DIVERS
    • Webmaster?
    • Liens

Laurent Petitprez

Tweet

Les conseils de Wouf

Beaucoup d’élèves entrant au lycée ont en effet des difficultés à manipuler les fractions, les racines carrées, les puissances, à factoriser des expressions… Ces notions, apprises au collège, sont mal assimilées, et le programme des classes de lycée ne prévoit pas de les retravailler en profondeur.

Cet ouvrage propose une remédiation pas à pas. Un code simple et mnémotechnique est associé à chacune des règles et rappelé dans toutes les corrections d’exercices. Il permet de se repérer et de comprendre ses erreurs.


Magic 500

Magic 500 n'est que le jeu où l'on devine un nombre, après essais successifs (trop grand, trop petit...)

Développé par les membres de Microloges, le club d'informatique de Beaumetz les loges, Magic 500 présente l'interêt d'offrir des sources quickbasic qui peuvent servir d'exemples aux débutants...

source: magic.bas

Le fichier principal:

DECLARE SUB jeu (moinsbon!)
DECLARE SUB regle ()
DECLARE SUB beethov ()
DECLARE SUB init (e$)
DECLARE SUB texte (a$, li!, co!, couleur!, t$)
DECLARE SUB espace (w!)
DECLARE SUB elise ()
CONST nbnb = 5         'nb de nb à trouver
CONST nbch = 3          'nb de chiffre à trouver
CONST nbenr = 30
TYPE sov
      chnom AS STRING * 20
      chnbes AS INTEGER
     END TYPE

DIM joueur AS sov
joueur.chnom = "Adam"


'                              Page de garde...
'__________________________________________________

DO


WIDTH 40, 25
CLS

texte "MICRoLoGES", 12, 5, 3, "non"

elise

texte "PRESENTE:", 14, 10, 4, "oui"

CLS

texte " M A G I C  5 0 0", 12, 1, 5, "non"

SLEEP 2
'_______________________________________________
'page 2

WIDTH 80, 50
CLS
OPEN "score.wou" FOR RANDOM AS #1 LEN = LEN(joueur)
i = 1

texte "MEILLEURS SCORES", 1, 25, 2, "non"
texte "NOM", 5, 15, 3, "non"
texte "ESSAIS", 5, 50, 3, "non"

max = LOF(1) / LEN(joueur)

IF max > nbenr THEN max = nbenr

FOR i = 1 TO max
  GET #1, i, joueur




  LOCATE 7 + i, 2
  COLOR 1
  PRINT i
  LOCATE 7 + i, 15
  PRINT joueur.chnom
  LOCATE 7 + i, 50
  COLOR 5
  PRINT joueur.chnbes


 NEXT



CLOSE #1
moinsbon = joueur.chnbes
IF moinsbon = 0 OR max < nbenr THEN moinsbon = 9999


LOCATE 50, 35
COLOR 2
PRINT "J";
COLOR 1
PRINT "ouer/";
COLOR 2
PRINT "R";
COLOR 1
PRINT "ègles/";
COLOR 2
PRINT "Q";
COLOR 1
PRINT "uitter";





DO
init e$  'on initialise la liste de nb aleatoires
LOOP UNTIL INSTR("jJrRqQ", e$) > 0 AND e$ <> ""



 


 SELECT CASE UCASE$(e$)


 CASE "J"
	jeu moinsbon

 CASE "Q"
 fin$ = "oui"

 CASE "R"
       regle

 END SELECT

 LOOP UNTIL fin$ = "oui"

SUB jeu (moinsbon)
DIM joueur AS sov
    DIM j AS sov
CLS
WIDTH 80, 50
BEEP

FOR no = 1 TO nbnb

 nbcach = INT(RND * 9 * 10 ^ (nbch - 1)) + 10 ^ (nbch - 1)
 DO
   essai = essai + 1
   PRINT
   COLOR 3
   PRINT "Encore "; nbnb - no + 1; "nombre";
   IF nbnb - no + 1 > 1 THEN PRINT ("s");
   PRINT " ...trouver. ";

  
   COLOR 3
   PRINT " Essai nø ";
   COLOR 4
   PRINT essai;
   COLOR 3
   PRINT " >  ";
   t = 0


   FOR y = 1 TO nbch

   t$ = ""
     DO
      t$ = INKEY$
     LOOP UNTIL INSTR("0123456789q", t$) > 0 AND t$ <> ""
     IF t$ = "q" THEN STOP
   PRINT t$;
   t = t * 10 + VAL(t$)

   t$ = ""
   
   
   NEXT y
  
   IF t > nbcach THEN PRINT "   trop grand "
   IF t < nbcach THEN PRINT "   trop petit "


 LOOP UNTIL t = nbcach
   COLOR 4
   PRINT " BRAVO !"
   IF no <nbnb THEN elise ELSE beethov
   espace (5)


NEXT no


PRINT "                           Mission accomplie !"
SLEEP 3

' ici on regarde le score et on le sauve si il est bon

IF essai < moinsbon THEN
PRINT " Bravo ! Vous entrez dans le top "; nbenr
PRINT
BEEP

INPUT "Entrez votre nom : "; nom$
OPEN "score.new" FOR RANDOM AS #2 LEN = LEN(joueur)

OPEN "score.wouf" FOR RANDOM AS #1 LEN = LEN(joueur)

 ok$ = "non"
 
 i2 = 0
 
 
max = LOF(1) / LEN(joueur)
 IF max = 0 THEN
       ok$ = "oui"
       j.chnom = nom$
       j.chnbes = essai
       i2 = i2 + 1
       PUT #2, i2, j
     END IF


 FOR i = 1 TO max

 GET #1, i, joueur

  IF (essai < joueur.chnbes OR joueur.chnbes = 0) AND ok$ = "non" THEN
       ok$ = "oui"
      
       j.chnom = nom$
       j.chnbes = essai
       i2 = i2 + 1
       PUT #2, i2, j
      
      
       END IF

       i2 = i2 + 1
       PUT #2, i2, joueur
      

 NEXT

 IF ok$ = "non" THEN

       ok$ = "oui"
     
       j.chnom = nom$
       j.chnbes = essai
       i2 = i2 + 1
       PUT #2, i2, j
      END IF


CLOSE #2
CLOSE #1

KILL "score.wou"
NAME "score.new" AS "score.wou"


END IF


END SUB

SUB regle
WIDTH 40, 25

CLS
texte "Règles", 5, 10, 5, "non"
texte "du jeu", 5, 23, 5, "oui"
espace (5)
COLOR 4
PRINT "Il s'agit de découvrir ";
PRINT nbnb;
PRINT " nombres cachés en dépensant"
PRINT "le moins d'essais possibles."
PRINT
PRINT " Les nombres sont des entiers de "; nbch; " chiffres"
PRINT
PRINT " plus petit, ou plus grand"
PRINT "seront mes seules indications"
PRINT
texte "BONNE CHANCE", 23, 12, 3, "oui"

LOCATE 25, 10
COLOR 4
PRINT " presser une touche";
SLEEP

END SUB
source: divers.bas

Et ce fichier externe, comme un "include"...

SUB beethov
ECOUTE$ = "T180 o2 P2 P8 L8 GGG L2 E-"
SUITE$ = "P24 P8 L8 FFF L2 D"
PLAY ECOUTE$ + SUITE$

END SUB

SUB elise
   PLAY ON
   lise$ = "o3 L8 E D+ E D+ E o2 B o3 D C L2 o2 A"
   PLAY "MB X" + VARPTR$(lise$)

END SUB

SUB espace (w)
FOR i = 1 TO w
 PRINT
 NEXT

END SUB

SUB init (e$)
DO
e$ = INKEY$
z = z + 1
LOOP UNTIL e$ <> ""
RANDOMIZE (z)

END SUB

SUB texte (a$, li, co, couleur, t$)
      
      LOCATE li, co
      COLOR couleur
      FOR i = 1 TO LEN(a$)
       PRINT (MID$(a$, i, 1)); " ";
       IF t$ = "oui" THEN SLEEP 1
       NEXT



END SUB
Téléchargements:

Télécharger le zip (EXE + sources)

Liens divers:

Quick Basic

Quick Basic est téléchargeable: qb45fr.zip

Un autre exemple sur Wikipedia: Exemple de programme sous Qbasic


 


Tweets by wouf

Comment ???

NEWS

  • Page : https://site2wouf.fr/magic500.php
  • Catégorie : Informatique

(?) Curl : la recette secrète pour automatiser vos requêtes web. 

Curl : la recette secrète pour automatiser vos requêtes web. 

Interroger le web sans passer par le navigateur

Cliquer toujours au même endroit. Copier une information dans une page. La coller ailleurs. Recommencer. Puis recommencer encore.

Beaucoup de tâches numériques ressemblent à cela : une succession de petites actions simples, mais répétitives. Une fois, ce n’est rien. Dix fois, cela devient pénible. Cent fois, cela devient une perte de temps. Et quand il faut vérifier plusieurs pages, récupérer des données, tester une adresse, envoyer une requête ou contrôler la réponse d’un serveur, le navigateur atteint vite ses limites.

Le navigateur est un outil formidable, oui mais.

Le navigateur est un outil formidable pour lire, explorer, chercher, comparer, cliquer. Il est pensé pour les humains. Il affiche des boutons, des menus, des images, des animations, des messages. C’est confortable pour consulter une page web, mais ce n’est pas toujours idéal pour automatiser une action.

Quand on veut travailler vite, répéter une opération, intégrer une vérification dans un script ou récupérer une réponse précise, l’interface graphique devient parfois un détour. On n’a pas toujours besoin de voir toute la page. On veut simplement poser une question à un serveur et lire sa réponse.

C’est exactement là que curl devient intéressant.

curl est un outil en ligne de commande qui permet d’envoyer des requêtes web directement depuis un terminal. Au lieu d’ouvrir une page dans un navigateur, on interroge une adresse avec une commande. Le serveur répond, et cette réponse peut être lue, enregistrée, filtrée, testée ou utilisée dans un script.

Dit autrement, curl permet de dialoguer avec le web sans passer par les boutons et les fenêtres. C’est un peu le couteau suisse des requêtes HTTP : discret, léger, disponible presque partout, mais incroyablement puissant dès qu’on comprend sa logique.

On peut s’en servir pour vérifier qu’un site répond correctement, récupérer le contenu d’une page, tester une API, envoyer des données, contrôler des en-têtes HTTP, télécharger un fichier ou automatiser une série de vérifications. Une simple commande peut parfois remplacer plusieurs minutes de manipulations manuelles.

L’objectif de cet article n’est pas de transformer immédiatement tout le monde en administrateur système ou en développeur backend. L’idée est plus simple : comprendre pourquoi curl est utile, apprendre quelques commandes de base, puis voir comment cet outil peut devenir un allié très pratique pour automatiser des tâches web du quotidien.

En résumé : si le navigateur est la vitrine du web, curl est l’accès direct à l’atelier.

Les ingrédients de base : qu’est-ce que curl ?

Avant de l’utiliser, il faut démystifier curl. Derrière ce petit nom un peu étrange se cache un outil très simple dans son principe : il permet de transférer des données à partir d’une URL.

Concrètement, au lieu d’ouvrir une adresse dans un navigateur, on demande à curl d’aller interroger cette adresse depuis le terminal. Il envoie une requête, reçoit une réponse, puis l’affiche ou l’enregistre selon ce qu’on lui demande.

Son nom vient de Client URL. L’idée est donc bien celle d’un “client” capable de communiquer avec une adresse web. Dans la pratique, curl sait travailler avec de nombreux protocoles, mais dans cet article, on va surtout l’utiliser pour les requêtes web classiques, en HTTP ou HTTPS.

Curl est disponible

La première force de curl, c’est sa disponibilité. On le retrouve sur la plupart des systèmes Linux, sur macOS, et il est aussi présent sur les versions récentes de Windows. Autrement dit, il n’est pas réservé à une machine exotique ou à un environnement très spécialisé.

Sa deuxième force, c’est sa légèreté. curl ne charge pas une page complète avec ses images, ses scripts, ses styles, ses publicités et ses animations. Il va droit au but : une adresse, une requête, une réponse. Cela le rend très rapide et particulièrement pratique lorsqu’on veut tester ou récupérer une information précise.

Enfin, curl est un outil idéal pour les scripts. Une commande que l’on tape une fois dans un terminal peut ensuite être intégrée dans un script Bash, appelée depuis Python, utilisée dans un traitement PHP, ou combinée avec d’autres outils en ligne de commande.

C’est là que curl devient vraiment intéressant : il ne sert pas seulement à “voir” une page web. Il permet de vérifier, tester, envoyer, récupérer, comparer et automatiser des échanges avec un serveur.

En résumé, curl, c’est un peu la version sans décor du navigateur : pas de boutons, pas d’onglets, pas d’interface graphique, mais un accès direct à la réponse du serveur.

La recette de base : votre première requête en deux secondes

La meilleure façon de comprendre curl, c’est de l’essayer sur une commande très simple. Ouvrez un terminal et tapez :

curl https://site2wouf.fr

Cette commande demande à curl d’interroger l’adresse indiquée. Le serveur répond, et curl affiche directement le contenu reçu dans le terminal.

Dans ce cas précis, vous ne voyez pas une jolie page web comme dans un navigateur. Vous voyez plutôt le code HTML brut envoyé par le serveur. C’est normal : curl ne cherche pas à mettre en page le résultat. Il récupère la réponse.

C’est un peu le “Hello World” de curl : une adresse, une commande, une réponse.

Cette première commande montre déjà une différence importante avec le navigateur. Quand vous ouvrez une page web, le navigateur interprète le HTML, charge les images, applique les styles CSS, exécute parfois du JavaScript, puis affiche une page lisible. Avec curl, on reste au niveau de la matière première : la réponse envoyée par le serveur.

Enregistrez !

Afficher le résultat dans le terminal peut être utile pour un test rapide, mais ce n’est pas toujours pratique. Si la page contient beaucoup de code, votre écran va vite être rempli. Dans ce cas, il vaut mieux enregistrer le résultat dans un fichier.

Pour cela, on peut utiliser l’option -o, suivie du nom du fichier à créer :

curl -o page.html https://site2wouf.fr

Cette fois, le contenu récupéré n’est plus affiché dans le terminal. Il est enregistré dans un fichier nommé page.html. Vous pouvez ensuite ouvrir ce fichier, l’analyser, le comparer, ou l’utiliser dans un autre traitement.

Il existe aussi l’option -O, avec un O majuscule. Elle sert à conserver le nom du fichier distant lorsque l’URL pointe vers un vrai fichier téléchargeable.

curl -O https://site2wouf.fr/favicon.ico

La différence est donc simple :

  • -o page.html permet de choisir soi-même le nom du fichier créé ;
  • -O reprend le nom du fichier présent dans l’URL.

Dans un article, un script ou une vérification rapide, cette nuance est importante. Sans option, curl affiche la réponse. Avec -o ou -O, il l’enregistre.

À ce stade, on sait déjà faire quelque chose de très utile : interroger une adresse web et conserver sa réponse. C’est simple, mais c’est la base de beaucoup d’usages plus avancés.

Les épices et assaisonnements : maîtriser les requêtes avancées

Jusqu’ici, nous avons utilisé curl comme une simple louche : on récupère une page, on l’affiche ou on l’enregistre. C’est déjà pratique, mais ce n’est que le début.

La vraie puissance de curl apparaît quand on commence à modifier la requête envoyée au serveur. On ne se contente plus de demander une page. On peut envoyer des données, ajouter des informations dans les en-têtes, simuler un navigateur, inspecter la réponse ou vérifier rapidement l’état d’une URL.

Autrement dit, on passe des pâtes au beurre au plat trois étoiles.

Envoyer des données : simuler un formulaire avec POST

Quand vous remplissez un formulaire sur un site web, votre navigateur envoie des données au serveur. Par exemple : un nom, une adresse e-mail, un mot-clé de recherche, un identifiant ou un message.

Avec curl, on peut reproduire ce type d’envoi directement depuis le terminal grâce à l’option -d, ou sa version longue --data.

curl -X POST -d "nom=Wouf" -d "message=Bonjour" https://example.com/formulaire

Dans cette commande, on indique trois choses importantes :

  • -X POST précise que l’on veut envoyer une requête de type POST ;
  • -d "nom=Wouf" envoie une première donnée ;
  • -d "message=Bonjour" envoie une deuxième donnée.

Dans beaucoup de cas, curl comprend automatiquement qu’une requête contenant -d doit être envoyée en POST. On peut donc souvent écrire plus simplement :

curl -d "nom=Wouf" -d "message=Bonjour" https://example.com/formulaire

Cette écriture est très utile pour tester un formulaire, une API ou un point d’entrée côté serveur sans avoir à créer une page HTML complète.

On peut aussi envoyer des données au format JSON, ce qui est très fréquent avec les API modernes :

curl -X POST \
  -H "Content-Type: application/json" \
  -d '{"nom":"Wouf","message":"Bonjour"}' \
  https://example.com/api

Ici, l’option -H ajoute un en-tête HTTP. Elle indique au serveur que les données envoyées sont au format JSON. Sans cette information, certains serveurs ne sauront pas forcément comment interpréter le contenu reçu.

Changer d’identité : utiliser un User-Agent

Quand un navigateur contacte un site web, il ne se contente pas de demander une page. Il envoie aussi des informations sur lui-même. Parmi elles, on trouve le User-Agent, c’est-à-dire une chaîne de texte qui indique généralement le navigateur utilisé, le système d’exploitation, ou le type d’appareil.

Par défaut, curl annonce clairement qu’il est curl. Certains sites peuvent alors répondre différemment, limiter l’accès, ou bloquer la requête. Ce n’est pas forcément malveillant : certains serveurs sont configurés pour se protéger contre les robots, les abus ou les requêtes automatiques trop nombreuses.

Pour tester le comportement d’un site comme s’il était interrogé par un navigateur, on peut modifier le User-Agent avec l’option -A :

curl -A "Mozilla/5.0" https://site2wouf.fr

On peut être plus précis et utiliser une chaîne proche de c...

lien vers l'article sur wouf blog
 

TIPS

FSG< vous aide à générer gratuitement un sitemap !

Voir tous les conseils.

Dernière mise à jour:

Juillet-aôut 2023

Nouvelle Page !

  • Exercices du jour : Les 16 immeubles !

Pages modifiées (ou corrigées) !

  • Exercices du jour : L'enclos
  • Exercices du jour : Les carrelages de couleur /a>

Voir toutes les mises à jour.

 

Trois liens disponibles !

Votre propre message ici, c'est possible! Plus d'informations



Sauf mention contraire, le site est placé sous double licence Creative Commons et GNU Free Documentation License, par contre les grandes images décoratives appartiennent à Corbis et sont licenciées par microsoft

Contact: w0uf@free.fr (avec un zéro à la place du O)