IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

[requests] identification developpez.net/forums : formulaire sans action + input sans noms


Sujet :

Python

  1. #21
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 321
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 321
    Par défaut
    @wiztricks
    il faut bien sûr être déconnecté pour voir le code que j'ai affiché EDIT: je ne vois plus ce formulaire ???? un update entre temps ???
    lostpw, c'est le formulaire mot de passe perdu

    AVANT (il y a quelques minutes) je voyais un formulaire dans la barre du haut,
    maintenant , a la même place: "Vous n'êtes pas encore inscrit sur Developpez.com ?Inscrivez-vous gratuitement !"

    Comme si mon navigateur avait perdu les cookies de ce site ????

    EDIT: retrouvé le même code : déconnecté, puis appui sur bouton "répondre" affiche même formulaire "html"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <form class="block vbform" method="post" action="login.php?do=login" onsubmit="md5hash(vb_login_password, vb_login_md5password, vb_login_md5password_utf, 0)">	
    ...
    </form>

    @AKAmêmeNom
    Ce que tu affiches est un formulaire géré en javascript:
    https://www.developpez.net/template/...gabarit-new.js
    Mais si tu désires te compliquer la vie, tu peux utiliser (reste a demander au forum js de l'aide)

    ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var s = {};
    		s.d = (new Date()).getTime();
    		s.username = n;
    		s.password = q;
    $.post("https://www.developpez.net/template/login.php", s

  2. #22
    Membre actif
    Homme Profil pro
    pas tout le temps.
    Inscrit en
    Janvier 2017
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : pas tout le temps.

    Informations forums :
    Inscription : Janvier 2017
    Messages : 50
    Par défaut
    retrouvé le même code : déconnecté, puis appui sur bouton "répondre" affiche même formulaire "html"
    ça pourrait fonctionner...
    c'est peut-être un peu alambiqué : passer par le formulaire de connexion pour répondre à une question.
    il faut se référer à une question qui existe, et qui n'est pas fermée.

    je le sens moyen le js, comme n'importe quelle autre chose que je n'ai jamais faite.
    mais si c'est faisable dans le déroulement de mon script, je vais faire encore quelques recherches et si "ça marche pô", je demanderai comment corriger le code pondu.

  3. #23
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 714
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 714
    Par défaut
    Citation Envoyé par AKAmêmeNom Voir le message
    je le sens moyen le js, comme n'importe quelle autre chose que je n'ai jamais faite.
    et revoilà des bibliothèques Selenium ou playwright....

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #24
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 198
    Par défaut
    Hello,
    Citation Envoyé par wiztricks Voir le message
    et revoilà des bibliothèques Selenium ou playwright....

    - W
    ben oui , l'avantage majeur par exemple avec selenium c'est qu'on pilote un navigateur et que l'on peut :
    1 - récupérer des pages dynamiques ( pages générées par script javascript) ce que ne sait pas faire requests.
    2 - Utiliser le cache du profile par défaut du navigateur donc par exemple ne plus être obligé de se connecter à chaque fois (infos de connexion mémorisée) ou d'être obligé à chaque fois de cliquer sur accepter les cookies.
    Ami calmant, J.P

  5. #25
    Membre actif
    Homme Profil pro
    pas tout le temps.
    Inscrit en
    Janvier 2017
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : pas tout le temps.

    Informations forums :
    Inscription : Janvier 2017
    Messages : 50
    Par défaut
    je trouve selenium très lent; autant faire F5 sur les «discussions suivies». Au moins le navigateur est déjà ouvert (la plus part du temps ).

    je ne connais pas playwright.
    à part qu'il est dans les dépôts Arch, quelles différences avec selenium ? Est-il plus rapide ?

  6. #26
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 714
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 714
    Par défaut
    Citation Envoyé par jurassic pork Voir le message
    ben oui , l'avantage majeur par exemple avec selenium c'est qu'on pilote un navigateur
    Je sais... mais le PO souhaitait une solution utilisable avec requests seul...
    Et ce n'est pas parce que la porte Selenium ouvre des perspectives pour arriver à se connecter (si c'est ce qu'on veut...) que c'est impossible de le faire avec requests.

    Citation Envoyé par AKAmêmeNom Voir le message
    je ne connais pas playwright.
    à part qu'il est dans les dépôts Arch, quelles différences avec selenium ? Est-il plus rapide ?
    Ce n'est pas parce qu'il a été laborieux de vous expliquer tout ça que la question initiale n'a pas été résolue.
    Vous partez sur un nouveau sujet, ouvrez une nouvelle discussion.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #27
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 198
    Par défaut
    Hello,
    j'ai testé playwright avec python sous Windows , çà à l'air pas mal, mais cela installe pas mal de chose ( chromium + firefox + webkit des centaines de Mo) dans un répertoire spécial playwright.
    Voici un exemple d'utilisation.
    Dans un premier temps un script pour enregistrer le contexte de session (pour pouvoir ne plus être obligé de se logger par la suite et ne pas avoir systématiquement la fenêtre accepter les cookies). Cela est enregistré dans un fichier json :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    from playwright.sync_api import sync_playwright, Playwright
     
     
    def run(playwright: Playwright):
        chromium = playwright.chromium # or "firefox" or "webkit".
        browser = chromium.launch(headless=False) # headless=true mode invisible
        # create a new incognito browser context
        context = browser.new_context()
        # create a new page inside context.
        page = context.new_page()
        page.goto("https://www.developpez.net/forums/"  +
                  "f1155/autres-langages/python/general-python/")
        print(page.title())
        submit_button = page.locator('div[role="gabarit-profil"]')
        submit_button.click()
        login  = page.locator("#formloginConnexion")
        pwd = page.locator("#formpassConnexion")
        btn = page.locator("#formbuttonConnexion")
        login.fill("user")
        pwd.fill("password")
        btn.click()
        storage = context.storage_state(path="d:/temp/storage.json")
        context.close()
        browser.close()
     
     
    with sync_playwright() as playwright:
        run(playwright)
    Exécuter ce script plutôt en debug car il peut y avoir des problèmes de timing.
    Et voici un script qui liste les 40 premiers sujets du forum Général Python :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    from playwright.sync_api import sync_playwright, Playwright
     
     
    def run(playwright: Playwright):
        chromium = playwright.chromium # or "firefox" or "webkit".
        browser = chromium.launch(headless=True)
        context = browser.new_context(storage_state="d:/temp/storage.json")
        page = context.new_page()
        page.goto("https://www.developpez.net/forums/"  +
                  "f1155/autres-langages/python/general-python/")
        listeSujets =  page.query_selector_all("ol.threads > li.threadbit")
        for sujet in listeSujets:
            print(sujet.query_selector("h3.threadtitle").inner_text())
        # other actions...
        browser.close()
     
     
    with sync_playwright() as playwright:
        run(playwright)
    Nom : Playwrite.gif
Affichages : 54
Taille : 221,3 Ko

    Ami calmant, J.P

  8. #28
    Membre actif
    Homme Profil pro
    pas tout le temps.
    Inscrit en
    Janvier 2017
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : pas tout le temps.

    Informations forums :
    Inscription : Janvier 2017
    Messages : 50
    Par défaut
    merci beaucoup, c'est plus que ce que j'espérais.
    je regarde ça tranquillement

    encore merci jurassic pork.

  9. #29
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 940
    Par défaut
    Citation Envoyé par AKAmêmeNom Voir le message
    je demande comment interagir en python avec un formulaire HTML dont les champs n'ont pas de nom.
    Puis
    Citation Envoyé par AKAmêmeNom Voir le message
    ce n'est pas trop dur, c'est que https://www.developpez.net/forums/login.php?do=login, me redirige vers la page d'accueil générale du site https://www.developpez.net/forums/

    et donc sur la page d'accueil du forum, le HTML, c'est ça
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <body>
        <header>
            <div id="gabarit_b1">
                <div id="gabarit_connexion">
                    <form>
                        <div>
                            <span>Identifiant</span>
                            <input type="text" class="form_input form-control" id="formloginConnexion" />
                            <span>Mot de passe</span>
                            <input type="password" class="form_input form-control" id="formpassConnexion"/>
                            <input type="button" value="Connexion" id="formbuttonConnexion" class="btn btn-primary" />
                            <div id="loadingConnexion" class="spinner-border text-light" role="status">
                                <span class="sr-only">Loading...</span>
                            </div>
                        </div>
                        <a rel="nofollow" id="mdpoublier" href="http://www.developpez.net/forums/login.php?do=lostpw">Mot de passe oublié ?</a><a id="inscriptionConnexion" href="https://www.developpez.net/forums/inscription/" class="btn btn-primary">Je m'inscris ! (gratuit)</a>	
                    </form>

    Dans le code que tu montres, les input n'ont pas de noms mais ils ont un ID.

Discussions similaires

  1. Valider un formulaire sans afficher la page action
    Par mmvik dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 07/09/2015, 08h34
  2. HTML sans formulaire mais avec input
    Par benhsaien dans le forum Balisage (X)HTML et validation W3C
    Réponses: 12
    Dernier message: 27/10/2011, 18h25
  3. Formulaire sans action sans script
    Par xiongmao dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 14/02/2010, 00h17
  4. Poster un formulaire sans envoyer le fichier d'un input file
    Par fabiin dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/02/2009, 20h54
  5. formulaire sans attribut 'action' et javascript
    Par cyanure93 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 16/04/2007, 11h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo