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

Réseau/Web Python Discussion :

Problème de python: exécuter un lien


Sujet :

Réseau/Web Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2018
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2018
    Messages : 48
    Par défaut Problème de python: exécuter un lien
    Bonjour/Bonsoir,

    Je m'explique; cela fait maintenant quelques temps que je cherche une solution mais je n'y parvient toujours pas, alors je me permet d'ouvrir cette discussion pour vous expliquer mon problème et trouver une éventuelle solution.

    Je suis "débutant" en python et mon but est de réussir à me connecter sur un site automatiquement à partir d'un pseudo et d'un mot de passe.
    J'ai donc commencé le codage suivant, mais je ne parvient pas à me connecter, du moins le compte n'apparaît pas "en ligne" sur le site, alors que IDLE ne détecte pas d'erreur dans mon codage.

    Si quelqu'un pouvait me venir en aider et me débloquer car je ne vois vraiment pas quoi faire
    Merci beaucoup d'avance pour votre aide !

    Voici mon code:

    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
     
    import cookielib, urllib, urllib2
     
    pseudo = 'pseudo_a_entrer'
    password = 'mdp_a_entrer'
     
    # Enable cookie support for urllib2
    cookiejar = cookielib.CookieJar()
    urlOpener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookiejar))
     
    # Send login/password to the site and get the session cookie
    values = {'pseudo':pseudo, 'password':password }
    data = urllib.urlencode(values)
    request = urllib2.Request("https://www.site__entrer.com/index.php?a=login", data)
    url = urlOpener.open(request)  # Our cookiejar automatically receives the cookies
    page = url.read(10000)
    print(request)
     
    print "We are logged in !"
     
    input("...")


    J'ai vu que les variable pseudo et password pouvaient changer selon les sites, or sur mon site, c'est pseudo et pass mais pass n'est pas valide comme variable, cela apparaît comme autre chose qu'une variable. Donc j'ai mis password, je ne sais pas si cela peu importer..
      0  0

  2. #2
    Membre chevronné
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2018
    Messages
    537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2018
    Messages : 537
    Par défaut
    Bonsoir
    si j'ai bien compris cela devrait fonctionner avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    values = {'pseudo':pseudo, 'pass':password}
      0  0

  3. #3
    Invité
    Invité(e)
    Par défaut
    Récupérer les valeurs du Cookie pour voir si il fonctionne.

    Tenter alors de passer le Cookie en POST avant ou après la requête vers l'URL, car, il est dit dans le forum officiel de ce Challenge que la méthode de connexion du site a évoluée et les paramètres ne sont plus passés par GET.

    L'objectif est d'ajouter le cookie dans le header.

    ...

    J'ai finalement fais ce challenge en un peu moins d'une journée.
    Voilà de quoi avancer et comprendre ce challenge : https://www.visionduweb.eu/wiki/inde...nnexion_Python
    Dernière modification par Invité ; 01/07/2018 à 23h28.
      0  0

  4. #4
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2018
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2018
    Messages : 48
    Par défaut
    Citation Envoyé par bonjourajax Voir le message
    Bonsoir
    si j'ai bien compris cela devrait fonctionner avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    values = {'pseudo':pseudo, 'pass':password}
    Merci beaucoup, c'était "juste" ça à modifier ! Tu m'as vraiment débloquer, vraiment, merci beaucoup !
    Merci également à Zeroocool pour son aide, notamment sur le chat

    Je vais maintenant continuer mon défis et si je rencontre à nouveau un problème qui persiste, je viendrais poster mon problème

    Merci à tous !!
      0  0

  5. #5
    Invité
    Invité(e)
    Par défaut
    J'ai pas bien compris ou tu as été dépanné par le code plus haut, tu l'avais déjà dans ton exemple avec les bonnes valeurs et la proposition contient les mauvaises valeurs.

    Bon courage pour le challenge, j'ai pu le finir, il m'a agacé ton défit.

    Un message s'affiche à l'écran pour valider le challenge :
    # ['838fa4cdea5d...3145a98f20df9ee', 'a%3A4%3A%7Bi%3A0%3Bs%3A5%3A%2255733%22%3Bi...%22%3Bi%3A2%3Bi%3A1612301728%3Bi%3A3%3Bi%3A0%3B%7D']
    # Le nombre aléatoire pour valider ta réponse est : 27.....15
    # https://www.010011100110010101110111...tion=27....115
    # <h3 align="center">Bravo, tu as réussi l'épreuve !</h3><br /><p>Pour valider l'épreuve, le mot de passe est : ******

    Le lien pour les explications : https://www.visionduweb.eu/wiki/inde...eb_avec_Python
      0  0

  6. #6
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2018
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2018
    Messages : 48
    Par défaut
    Citation Envoyé par ZerooCool Voir le message
    J'ai pas bien compris ou tu as été dépanné par le code plus haut, tu l'avais déjà dans ton exemple avec les bonnes valeurs et la proposition contient les mauvaises valeurs.

    Bon courage pour le challenge, j'ai pu le finir, il m'a agacé ton défit.

    Un message s'affiche à l'écran pour valider le challenge :
    # ['838fa4cdea5d...3145a98f20df9ee', 'a%3A4%3A%7Bi%3A0%3Bs%3A5%3A%2255733%22%3Bi...%22%3Bi%3A2%3Bi%3A1612301728%3Bi%3A3%3Bi%3A0%3B%7D']
    # Le nombre aléatoire pour valider ta réponse est : 27.....15
    # https://www.010011100110010101110111...tion=27....115
    # <h3 align="center">Bravo, tu as réussi l'épreuve !</h3><br /><p>Pour valider l'épreuve, le mot de passe est : ******

    Le lien pour les explications : https://www.visionduweb.eu/wiki/inde...eb_avec_Python
    Et bien, apparemment ça fonctionne comme ça..

    Mais maintenant, je voudrais que le pseudo et le mot de passe soient pris dans un document.txt voici donc le codage que j'ai fais:
    (Le document.txt est composé du pseudo sur la première ligne et du mot de passe sur la ligne d'en dessous)

    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
    29
    30
    31
    32
    33
    34
    35
     
    import cookielib, urllib, urllib2
     
     
    a=0
     
    f = open("doc.txt",'r')
    pseudo = f.readlines()[a]
    f.close()
    print pseudo
     
    f = open("doc.txt",'r')
    password = f.readlines()[a+1]
    f.close()
    print password
     
    a=a+2
     
     
     
    # Enable cookie support for urllib2
    cookiejar = cookielib.CookieJar()
    urlOpener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookiejar))
     
    # Send login/password to the site and get the session cookie
    values = {'pseudo':pseudo, 'pass':password }
    data = urllib.urlencode(values)
    request = urllib2.Request("https://www.site_a_entrer.com/index.php?a=login", data)
    url = urlOpener.open(request)  # Our cookiejar automatically receives the cookies
    page = url.read(10000)
    print(request)
     
    print "We are logged in !"
     
    input("...")
    Le code est bon, mais le compte n'apparaît pas "en ligne" sur le site :/

    Merci d'avance pour votre aide
      0  0

  7. #7
    Invité
    Invité(e)
    Par défaut
    Si tu es toujours sur le même challenge, alors non, le code n'est pas bon. Le champ input pour le mot de passe, c'est passwrd et pas password. Le champ utilisateur, s'appelle user pour la balise input, du formulaire de connexion.

    Tout est expliqué sur mon lien plus haut.
      0  0

Discussions similaires

  1. problème avec Python, matplotlib et pygtk
    Par marwanos dans le forum Déploiement/Installation
    Réponses: 11
    Dernier message: 27/04/2010, 00h29
  2. Installer Omni : Problème avec Python
    Par Colbix dans le forum CORBA
    Réponses: 1
    Dernier message: 18/02/2009, 14h30
  3. [turbogears] problème avec python 2.5
    Par gorgonite dans le forum Général Python
    Réponses: 1
    Dernier message: 23/05/2007, 17h48
  4. [Linux-XML] Probléme avec python-xml
    Par Exodus dans le forum Général Python
    Réponses: 5
    Dernier message: 27/03/2007, 15h47
  5. Problème avec python
    Par Thrystan dans le forum Gnome
    Réponses: 2
    Dernier message: 17/08/2006, 00h29

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