• # FF + curl

    Posté par . En réponse au message Question de newbie sur la soumission de formulaire avec python-request. Évalué à 2.

    dans firefox,

    • charger la page du formulaire
    • faire F12, aller sur l'onglet réseau
    • remplir le formulaier et faire submit

    La première ligne qui s'affiche dans l'onglet réseau est la requête de soumission du formulaire.
    Faire click-droit, "copy as curl", chez moi ça donne:

    curl 'https://www.e-chargement.com/identif_badge.Asp' \
     -X POST
     -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:131.0) Gecko/20100101 Firefox/131.0' \
     -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/png,image/svg+xml,*/*;q=0.8' \
     -H 'Accept-Language: en-US,en;q=0.8,fr-FR;q=0.5,fr;q=0.3' \
     -H 'Accept-Encoding: gzip, deflate, br, zstd' \
     -H 'Content-Type: application/x-www-form-urlencoded' \
     -H 'Origin: https://www.e-chargement.com' \
     -H 'Connection: keep-alive' \
     -H 'Referer: https://www.e-chargement.com/identif_badge.Asp' \
     -H 'Cookie: badge%5Fdiv=6891; ASPSESSIONIDQUBACAAT=FDKMPLPCMIPOBAABEOONALHE; home_url=; parent_entrance=; origurl=; retour_url=; mobiledevice=0; mobiledevice=0' \
     -H 'Upgrade-Insecure-Requests: 1' \
     -H 'Sec-Fetch-Dest: document' \
     -H 'Sec-Fetch-Mode: navigate' \
     -H 'Sec-Fetch-Site: same-origin' \
     -H 'Sec-Fetch-User: ?1' \
     -H 'Priority: u=0, i' \
     --data-raw 'badge_div=6891&badge_number=compte&badge_nom=nom'

    Le plus important étant la deuxième ligne - on fait un POST - et la dernière qui donne le format des informations attendue.

    En jouant cette commande telle quelle dans un terminal, on retrouve le même résultat que dans le navigateur.

    Après, on peut s'amuser à enlever les lignes d'entête (-H) qui paraissent inutiles jusqu'à ce que cela ne marche plus. On peut aussi combiner deux requêtes pour récupérer des cookies si nécessaire. Mais la base est là.

    Happy scraping.