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 :

Lire un URL protégé par un mot de passe


Sujet :

Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2016
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Lire un URL protégé par un mot de passe
    Bonjour,

    J'aimerais lire le code source d'une page internet pour ensuite y récupérer des données. Cette page est protégée par un mot de passe.
    J'ai trouvé un petit script qui permet cela mais il ne marche pas. Quand je le lance il m'affiche le code source de la page qui permet de se connecter.

    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
    import urllib2
     
    prog_URL = urllib2.HTTPPasswordMgrWithDefaultRealm( )
     
    prog_URL.add_password(None, 'http://www.monsite.fr/login', 'id', 'motdepasse')
     
    # Authentification
    auth = urllib2.HTTPBasicAuthHandler(prog_URL)
    opener = urllib2.build_opener(auth)
    urllib2.install_opener(opener)
     
    flob = urllib2.urlopen('http://www.monsite.fr/lapagequicontientlesinformations.html)
     
    # Afficher le fichier
    for line in flob.readlines( ):
        print line,
    Quelqu'un pourrait m'aider? Merci d'avance

  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,

    "mais il ne marche pas" n'est pas une information qui permette de t'aider.

    Qu'obtiens-tu en retour ? Une erreur, une URLError ou rien mais dans ce cas que contient flob ?

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2016
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Salut,

    J'aimerais lire le code source d'une page, mais cette page avant d'y accéder il faut se connecter. Je lance mon script dans mon cmd.exe j'ai un code source qui s'affiche mais c'est celui de la page pour se connecter.

    Comme si j'essayais de lire le code source comme ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    import urllib2
    flob = urllib2.urlopen('http://www.monsite.fr/lapagequicontientlesinformations.html)
    for line in flob.readlines( ):
        print line,
    et qu'il me lisait la page de connexion car il n'a pas eu le mot de passe et il ne peut pas y accéder.

    Merci

  4. #4
    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
    Ça me semble normal en fait.

    Je viens de tester ton code avec mon site oqapy.eu où j'ai une page d'administration nécessitant de s'identifier et, comme attendu, ton code me retourne le contenu de cette page.

    Il s'agit d'une page qui contient une Form avec des champs à remplir, dont tu peux prendre connaissance en lisant cette page et ensuite construire une requête POST contenant les éléments requis par la Form.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2016
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Mon problème c'est que le code source de la page d'authentification je ne le veux pas, j'aimerais afficher le code source de la page que je demande. J'ai essayé avec le module requests qui est plus simple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    import requests
     
    r = requests.get('http://www.monsite.fr/mapagedontjeveuxlirelecodesource.jsp', auth=('User', 'Password'))
     
    print r.text
    Mais pareil ca me renvoie le code source de la page d'authentification ... Une solution?

  6. #6
    Membre habitué
    Inscrit en
    Avril 2010
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2010
    Messages : 99
    Points : 143
    Points
    143
    Par défaut
    Bonjour.

    J'avais écrit il y a longtemps un script qui demandait comme pour toi de s'identifier à un site.
    Voici le code si ça peut t'aider.
    Si tu pouvais envoyer le nom du site vers lequel tu veux t'identifier, ça pourrait aider à te proposer des solutions à ton problème.

    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 urllib
    import urllib2
    import cookielib
     
    login = "xxxx"
    password = "xxxx"
    signInPage = "http://mapage.org/login"
    page = "http://mapage.org"
     
    cookiejar = cookielib.CookieJar()
    urlOpener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookiejar))
    userAgent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1) Gecko/20061010 Firefox/2.0'
    headers = { 'User-Agent' : userAgent }
     
    urlArgs = urllib.urlencode({"action":"ident", "login": login, "password": password})
    signInRequest = urllib2.Request(signInPage, urlArgs, headers)
    urlOpener.open(signInRequest)
     
    request = urllib2.Request(page, None, headers)
    print urlOpener.open(request).read()

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2016
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    Je viens de tester ton code et j'obtiens le même résultat: le code source de la page d'authentification ...

    C'est www.TEKSAT.fr, un site de géolocalisation de véhicules, la page d'authentification on la trouve dans l'onglet ACCES CLIENTS --> Gestion De Flotte.

    Merci bonne journée !

  8. #8
    Membre habitué
    Inscrit en
    Avril 2010
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2010
    Messages : 99
    Points : 143
    Points
    143
    Par défaut
    Essaie comme ça (enlève "cid": "null" à la ligne 16 si ça marche pas)

    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 urllib
    import urllib2
    import cookielib
     
    login = "xxxx"
    password = "xxxx"
    signInPage = "http://www.demo.teksat.fr/special/global-login-teksat.jsp"
    page = "http://www.demo.teksat.fr/lapageoutuveuxaller"
     
    cookiejar = cookielib.CookieJar()
    urlOpener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookiejar))
    userAgent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1) Gecko/20061010 Firefox/2.0'
    headers = { 'User-Agent' : userAgent }
     
    urlArgs = urllib.urlencode({ "un": login, "pw": password, "cid": "null"})
    signInRequest = urllib2.Request(signInPage, urlArgs, headers)
    urlOpener.open(signInRequest)
     
    request = urllib2.Request(page, None, headers)
    print urlOpener.open(request).read()

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2016
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Je viens d'essayer ca à l'air de marcher, le code source de ma page s'affiche enfin ! Il me manque plus qu'a récupérer les données qu'y m'intéressent dedans !
    Je te remercie pour ton aide, je n'y serais pas arrivé tout seul !

    Bonne journée et encore merci !

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

Discussions similaires

  1. Lien protégé par un mot de passe
    Par hubald dans le forum Langage
    Réponses: 11
    Dernier message: 05/12/2008, 18h22
  2. Réponses: 2
    Dernier message: 24/11/2008, 13h39
  3. Réponses: 3
    Dernier message: 08/11/2008, 09h23
  4. Réponses: 8
    Dernier message: 12/11/2007, 12h04
  5. Formulaire protégé par un mot de passe
    Par SpyesX dans le forum Access
    Réponses: 10
    Dernier message: 13/03/2006, 18h02

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