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 :

Script de connexion automatique à Facebook


Sujet :

Réseau/Web Python

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 18
    Points : 5
    Points
    5
    Par défaut Script de connexion automatique à Facebook
    Bonjour,

    Je voudrai réaliser un script en python qui va se connecter à facebook.

    J'ai repris et modifié un script qui lui fonctionne sur twitter et myspace mais pas sur facebook.

    Voici la source

    Lors du chargement de la page créée par le script, il m'indique que mon navigateur n'accepte pas les cookies. Problème que je n'ai pas sur les autres sites.

    J'ai suivi plusieurs pistes que j'ai trouvé sur internet mais sans résultats concrets.

    Pourriez-vous me donner des pistes afin de réussir à réaliser un tel script ?

    Qu'est-ce que facebook a de plus que les autres sites ? (Connexion via du JS ?)

    Voici le code en question :

    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
    36
    37
    38
    39
     
    #!/usr/bin/python
     
    import urllib2, cookielib, re, urllib
     
    # fichier dans lequel on va stocker la page pour verifier le fonctionnement de la connexion
    f=open("test.html", "w")
     
    #url de connexion
    url = 'http://secure.myspace.com/index.cfm?fuseaction=login.process'
     
    # identifiants de connexion
    email = "******" 
    pwd = "******"  
     
    ################ champs pour myspace différents de twitter
    email_box = "ctl00%24ctl00%24Main%24cpMain%24SplashDisplay%24ctl00%24Email_Textbox="+email
    pwd_box = "ctl00%24ctl00%24Main%24cpMain%24SplashDisplay%24ctl00%24Password_Textbox="+pwd
     
    #données envoyées à la fonction open pour se connecter
    data = email_box+"&"+pwd_box
     
    #gestion des cookies
    cj = cookielib.CookieJar()
     
    opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
     
    ## Headers
    opener.addheaders = [('Referer', 'http://www.myspace.com/index.cfm?fuseaction=splash'),
     
                       ('Content-Type', 'application/x-www-form-urlencoded'),
     
                       ('User-Agent', 'Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.9.0.19) Gecko/2010090808 Iceweasel/3.0.6 (Debian-3.0.6-3)')]
     
    usock = opener.open(url, data)
     
    #ecriture dans le fichier html
    f.write(usock.read())
    usock.close()
    Merci d'avance.

  2. #2
    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
    Salut,
    S'il veut un cookie, il faut lui donner... et éventuellement le récupérer dans le cookieJar de votre navigateur favori (à la main ou de façon programmatique).
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    J'essaye de passer le cookie dans le header, cependant je ne parviens pas à récupérer le cookie que m'envoie le site.

    J'ai vu qu'il se trouve dans la variable cj mais sous une syntaxe qui ne me conviens pas pour le renvoyer au site.

    je place le cookie comme ceci dans le header :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    cj = cookielib.CookieJar()
     
    opener.addheaders = [ ('Cookie', cj),
    		   ('Referer', 'http://www.facebook.com/'),
     
                       ('Content-Type', 'application/x-www-form-urlencoded'),
     
                       ('User-Agent', 'Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.9.0.19) Gecko/2010090808 Iceweasel/3.0.6 (Debian-3.0.6-3)')]
    Ce qui ne fonctionne pas évidemment...comment passer la valeur exacte du cookie ? J'ai regardé du côté des méthodes de cookielib mais sans résultats.

  4. #4
    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
    Salut,
    Vous trouverez ici quelques indications.
    Personnellement, étant fainéant, je préfère utiliser mechanize qui fait déjà pas mal de boulot pour traiter les différents cas.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Merci mais j'ai déjà visité ce lien. Je vais continuer à chercher.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Je me suis penché sur mechanize pour me simplifier la tâche, et grâce à un autre poste d'ici j'ai repris et modifié un script pour avoir ça :

    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
     
    #!/usr/bin/python
     
    import mechanize
     
    f=open('test.html','w')
    email = "******"
    pwd = "******"
     
    def find_login_form(html_form):
        return html_form.attrs['action'].startswith('login.php')
     
    br=mechanize.Browser()
     
    br.addheaders = [('Referer', 'http://www.facebook.com/'),
     
                       ('Content-Type', 'application/x-www-form-urlencoded'),
     
                       ('User-Agent', 'Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.9.0.19) Gecko/2010090808 Iceweasel/3.0.6 (Debian-3.0.6-3)')]
     
    br.open('https://login.facebook.com/login.php')
    br.select_form(predicate=find_login_form)
    br.form.set_value(email, name='email')
    br.form.set_value(pwd, name='pass')
    br.submit()
    br.follow_link(url='http://www.facebook.com/home.php')
    print br.title()
     
    f.write(br.read())
    br.close()
    Mais j'obtiens un message d'erreur, bots refusé...pourtant je lui passe bien le user_agent.

    Où se situe mon erreur svp ?

    ps : désolé pour le double poste

  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
    dites lui de se comporter comme un plouc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ...
    br=mechanize.Browser()
    br.set_handle_robot(False)
    ...
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Je m'en suis finalement sorti avec mechanize. J'avais un soucis sur le follow_link après mais en débuggant j'ai progressivement compris le fonctionnement du module (merci la doc aussi).

    Je peux aller coucher tranquille, merci à vous wiztricks

  9. #9
    Invité
    Invité(e)
    Par défaut
    Peux-tu nous dire comment tu as fait ?

    Merci.

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

Discussions similaires

  1. [connexion via proxy] script de config automatique proxy
    Par marwaza22 dans le forum Réseau
    Réponses: 2
    Dernier message: 27/06/2007, 17h22
  2. Telnet : script de connexion automatique
    Par kimlee dans le forum Windows XP
    Réponses: 1
    Dernier message: 10/11/2006, 17h13
  3. script de connexion par ssh
    Par black_code dans le forum Modules
    Réponses: 2
    Dernier message: 25/07/2005, 15h10
  4. [CR9][SQL Server] Connexion automatique
    Par PetitScarabe dans le forum Connectivité
    Réponses: 6
    Dernier message: 31/03/2005, 17h51

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