2012-07-01 3 views
3

Je travaille sur un prototype pour une application de messagerie. J'ai besoin d'accéder à mon compte Gmail personnel dans le code python de mon application pour ce faire. Je suis conscient que je peux probablement accomplir cela en utilisant API google mais je pensais que ce serait une bonne pratique pour moi d'essayer d'accéder directement à travers l'interface utilisateur standard. J'ai décrit les étapes qui, selon moi, sont impliquées dans ce processus et j'aimerais beaucoup entrer à la fois sur la structure que je propose dans les étapes ainsi que sur la manière de l'implémenter réellement en python.accéder au compte google via python

ÉTAPE 1: url ouverte pour la connexion à gmail

  1. A savoir: https://accounts.google.com/ServiceLogin
  2. Cette étape est assez facile:

    page=urllib2.urlopen("https://accounts.google.com/ServiceLogin")

ÉTAPE 2: soumettre un message demande quelle page à la page qui authentifie connexion

  1. De html ressemble à la page d'authentification est à https://accounts.google.com/ServiceLoginAuth
  2. J'ai également pu vérifier que la connexion est gérée par un formulaire (nom gaia_loginform)
  3. Couple de questions clés dans cette étape:
  4. Comment envoyer la demande de publication via urllib? Je suppose que urlopen gère uniquement les demandes?
  5. Comment enregistrer les cookies, les entrées de formulaires masqués, etc. à partir de la page de connexion nécessaires à l'authentification et les inclure dans ma demande d'obtention?

Comme je pense plus à ce sujet, je me demande si je l'approche de la bonne façon. En principe, tout ce que je veux que l'ordinateur fasse est d'aller sur la page de connexion, entrez les données de connexion et cliquez sur le bouton soumettre. En Excel, vous pouvez accomplir cela en enregistrant une macro. Vous pourriez imaginer le serveur littéralement aller sur un navigateur Web, en tapant l'adresse de la page, en remplissant des informations et en cliquant sur soumettre. S'il y avait une solution équivalente ici, il semble que ce serait beaucoup plus facile que de recréer tout le processus à travers les commandes urllib. Espérons que le raisonnement ci-dessus a du sens. Appréciez vos pensées.

Evan

+3

"Je pensais que ce serait une bonne pratique pour moi d'essayer d'accéder directement à travers l'interface utilisateur standard." Oh, c'est un gros ordre! Même si vous parvenez à le faire, le code sera probablement plutôt fragile. Pour ce que ça vaut, je pense que vous devriez simplement utiliser IMAP. –

+2

À la fin de suivre votre plan d'origine, jetez un oeil à [mécaniser] (http://www.recherche.sourceforge.net/mechanize/) et [Sélénium] (http://seleniumhq.org/). –

Répondre

0

est un module Sélénium python que vous pouvez utiliser pour imiter ce que vous voulez faire. Il a d'excellentes capacités d'émulation et l'instance de webdriver (qu'un script de sélénium va démarrer) peut faire tout ce qu'un navigateur normal fait.

Juste pour montrer combien il est facile d'utiliser le sélénium: -

elem = driver.find_element_by_id('username').send_keys("USERNAME") 

De même, les commandes comme clic, soumettre, find_element_by_class etc, il est très facile à utiliser le sélénium.

Remarque: Selenium ouvre une instance de pilote Web (GUI) sur l'écran et n'est donc pas entièrement dans les coulisses. Si vous en avez besoin, vous devrez peut-être regarder d'autres bibliothèques comme mécaniser.

Tout le meilleur!

Questions connexes