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 :

Création d'une requête post


Sujet :

Réseau/Web Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2018
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    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
    Points : 12
    Points
    12
    Par défaut Création d'une requête post
    Bonjour,

    Mon "objectif" est de "lire" un lien, j'ai donc essayé ce codage:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    import urllib2
     
    req = urllib2.Request(url="https://www.site_a_entrer.com")
    f = urllib2.urlopen(req)
    print f.read()
     
    print "..."
    Aucun problème, mais d'après le site, le lien n'est pas "lu".
    J'en ai donc déduis avec l'aide de plusieurs personnes que cela était du à un problème dans le protocole (source); en effet, le site possède un protocole particulier. (source)

    D'après l'aide de Bonjourajax, il faudrait donc créer une requête post. (source)

    J'ai donc essayé quelque chose pour me connecter à un compte, le compte apparaît bien "en ligne" sur le site.
    Maintenant, j'aimerais "lire" un lien et que ce lien soit bien "lu" d'après le site..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    import requests
     
    payload = {'pseudo': 'pseudo_a_entrer', 'pass': 'mot_de_passe_a_entrer'}
     
    r = requests.post("https://www.site_a_entrer.com/index.php?a=login", data=payload)
    print(r.text)

    Voici donc les codes que j'ai pour l'instant pour essayer de "lire" ce lien..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    import requests, urllib.request
     
    req = urllib.request.urlopen(url="https://www.site_a_entrer.com")
    f = req.read()
    print (f)
    Le code ci-dessous ne semble plus fonctionner avec python 3, car urllib2 ne semble plus fonctionner avec python3..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    import urllib2
     
    req = urllib2.Request(url="https://www.site_a_entrer.com")
    f = urllib2.urlopen(req)
    print f.read()
     
    print "..."
    Est-ce que quelqu'un pourrait m'orienter et m'aider s'il vous plaît ?
    Merci beaucoup d'avance pour votre aide !

    Cordialement.

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    Que veux-tu dire par : d'après le site, le lien n'est pas "lu"

  3. #3
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2018
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    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
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par VinsS Voir le message
    Salut,

    Que veux-tu dire par : d'après le site, le lien n'est pas "lu"
    C'est-à-dire que l'accès à ce lien créé une action sur le site, tel qu'un enregistrement, un clic quelque part, un vote, une modification etc.
    Or, là, lorsque j'utilise mon code, ça ne fonctionne pas (pourtant, IDLE ne détecte aucun problème, c'est parce qu'il y a un problème avec le protocole du site).

  4. #4
    Invité
    Invité(e)
    Par défaut
    J'ai testé un code de mon côté et cloudflare m'a directement envoyer promener sur mon site en production.

    Je suppose que Cloudflare empêche la connexion à mon site, via un script python, à moins que le script ne soit incomplet.

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par ZerooCool Voir le message
    Je suppose que Cloudflare empêche la connexion à mon site, via un script python, à moins que le script ne soit incomplet.
    Comme le site Web n'a aucune chance de savoir avec quel langage a été expédié demande de connexion et message HTTP. Votre script n'est pas incomplet, juste inadapté à ce que s'attend de recevoir le serveur pour l'accepter et y répondre.

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

  6. #6
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2018
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    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
    Points : 12
    Points
    12
    Par défaut
    Up !

    Je n'ai toujours pas réussis à résoudre le problème.. :'(

    Merci d'avance pour votre aide !

    Cordialement.

  7. #7
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par Python_addict Voir le message
    Je n'ai toujours pas réussis à résoudre le problème.. :'(

    Merci d'avance pour votre aide !
    Si vous avez lu les réponses, vous auriez compris que ce n'est pas un problème Python mais d'authentification HTTP définie par le site Web auquel vous essayez de vous connecter.

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

  8. #8
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2018
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    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
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Si vous avez lu les réponses, vous auriez compris que ce n'est pas un problème Python mais d'authentification HTTP définie par le site Web auquel vous essayez de vous connecter.
    Je l'ai bien compris depuis longtemps ça, même avant d'ouvrir cette discussion !
    Mais le problème n'est pas là, c'est que je vois pas comment faire..

  9. #9
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par Python_addict Voir le message
    Je l'ai bien compris depuis longtemps ça, même avant d'ouvrir cette discussion !
    Ça on l'avait bien compris aussi.

    Citation Envoyé par Python_addict Voir le message
    Mais le problème n'est pas là, c'est que je vois pas comment faire..
    C'est de la programmation réseau. Vous pourriez installer wireshark pour comparer les messages échangés lorsque çà fonctionne (via votre browser) et voir ce qui manque lorsque çà ne marche pas (vos requêtes). Ceci dit comme vous ne semblez pas trop maîtriser le sujet vous aurez des difficultés à comprendre toutes ces informations et résoudre votre problème.
    Pour résumer, vous avez des tas de choses à apprendre, mais çà prend du temps ... et "apprendre" n'est pas quelque chose qu'on peut faire à votre place.

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

  10. #10
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2018
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    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
    Points : 12
    Points
    12
    Par défaut
    Je vais essayer de me débrouiller avec ça et reviendrais vers vous.

    Merci pour votre aide !

  11. #11
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    La rubrique réseau dispose d'un tas de cours et de tutos. qui pourraient vous intéresser.
    Bon courage.

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

  12. #12
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2018
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    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
    Points : 12
    Points
    12
    Par défaut
    Voici où j'en suis dans mon code:

    → Connexion et récupération des cookies
    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
     
    import requests
     
    payload = {'pseudo': 'aentrer', 'pass': 'aentrer'}
    r = requests.post("https://www.siteaentrer.com/index.php?a=login", data=payload)
    print(r.text)
     
    print("...")
     
    print(r.encoding)
     
    print ("...")
     
    print (r)
     
    print("...")
     
    print(r.headers)
    cookie1 = r.headers
     
    print("...")
     
    print(r.cookies)
    cookie2 = r.cookies
    → Accès au lien (essai 1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    url = 'https://www.siteaentrer.com/?a=voterdoll&pseudo=test'
    cookies = dict(cookies_are='working')
     
    r = requests.get(url, cookies=cookies)
    r.text
    → Accès au lien (essai 2)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    v = requests.post("https://www.siteaentrer.com/?a=voterdoll&pseudo=test")
    print("...")
     
    print(v.headers)

    Je pense qu'il faut maintenant fournir ce cookie obtenu pour chaque requête future, j'en déduis donc qu'il faut utiliser cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Pour envoyer vos propres cookies au serveur, vous pouvez utiliser le paramètre cookies:
     
    >>> url = 'http://httpbin.org/cookies'
    >>> cookies = dict(cookies_are='working')
     
    >>> r = requests.get(url, cookies=cookies)
    >>> r.text
    '{"cookies": {"cookies_are": "working"}}'
    Mais je n'y suis pas parvenu d'après mes essais, si quelqu'un pourrait m'aider et m'orienter.. ?

    Merci beaucoup d'avance pour votre aide !


    Cordialement.

  13. #13
    Invité
    Invité(e)
    Par défaut Cookie
    Je pense que ce que tu cherches pour les cookies et déjà sur cette page : https://www.visionduweb.eu/wiki/inde...eb_avec_Python

    Je regarderais à l'occasion tes exemples mais je n'ai pas eu le temps de mis mettre d'avantage pour le moment.
    Lis et relis ce que j'ai partagé sur le wiki, test, et, je pense que tu as la ce qu'il faut pour continuer.

  14. #14
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2018
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    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
    Points : 12
    Points
    12
    Par défaut
    Je viens à l'instant de résoudre le problème, merci beaucoup à tous pour votre aide, vraiment !
    Encore merci à vous tous pour m'avoir aidé !

    Cordialement,
    Python_addict

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/03/2006, 13h55
  2. Réponses: 4
    Dernier message: 28/10/2005, 20h58
  3. [MySQL] Aide à la création d'une requête
    Par tom06440 dans le forum Requêtes
    Réponses: 6
    Dernier message: 19/10/2005, 22h05
  4. Comment envoyer une requête POST via HTTP ?
    Par pdtor dans le forum C++
    Réponses: 2
    Dernier message: 13/09/2005, 05h54
  5. Analyse de code HTML en réponse a une requête post.
    Par ghost942 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 04/06/2005, 21h40

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