2012-07-01 3 views
3

Я работаю над прототипом приложения электронной почты. Мне нужно получить доступ к моей личной учетной записи gmail в коде приложения python для моего приложения. Я знаю, что, возможно, я смогу выполнить это с помощью API Google, но я подумал, что для меня было бы хорошей практикой попытаться получить доступ непосредственно через стандартный пользовательский интерфейс. Я изложил те шаги, которые, как мне кажется, вовлечены в этот процесс, и я хотел бы получить вклад как в структуру, которую я предлагаю на этапах, так и как реализовать на python.доступ к учетной записи google через python

ШАГ 1: Открыть URL для входа в Gmail

  1. А именно: https://accounts.google.com/ServiceLogin
  2. Этот шаг довольно легко:

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

ШАГ 2: отправить сообщение запрос на любую страницу на страницу, которая проверяет подлинность Войти

  1. От HTML выглядит страница аутентификации на https://accounts.google.com/ServiceLoginAuth
  2. Я также был в состоянии проверить, что вход обрабатываются форма (названный gaia_loginform)
  3. Пары ключевые вопросы на этом этапе:
  4. Как я могу отправить запрос на отправку через urllib? Я полагаю, что urlopen обрабатывает только запросы?
  5. Как сохранить файлы cookie, скрытые формы и т. Д. На странице входа, которые необходимы для аутентификации, и включить их в мой запрос на получение?

Как я думаю подробнее об этом, я задаюсь вопросом, приближаюсь ли я к нему правильным путем. В принципе, все, что я хочу, чтобы компьютер сделал, это перейти на страницу входа в систему, ввести данные для входа и нажать кнопку отправки. В excel вы можете выполнить это, записав макрос. Вы могли представить себе, что сервер буквально перешел в веб-браузер, набрав адрес страницы, заполнив информацию и нажав кнопку «Отправить». Если бы здесь было эквивалентное решение, кажется, что это было бы намного проще, чем воссоздать весь процесс с помощью команд urllib. Надеюсь, что выше рассуждений имеет смысл. Цените свои мысли.

Evan

+3

«Я думал, что для меня будет хорошей практикой попробовать получить доступ прямо через стандартный пользовательский интерфейс». О, это высокий порядок! Даже если вам удастся это сделать, код, вероятно, будет довольно хрупким. Для чего это стоит, я думаю, вы должны просто использовать IMAP. –

+2

В конце следующего вашего первоначального плана ознакомьтесь с [mechanize] (http://wwwsearch.sourceforge.net/mechanize/) и [Selenium] (http://seleniumhq.org/). –

ответ

0

Селен является модуль Python, который вы можете использовать, чтобы эмулировать то, что вы хотите сделать. Имеет отличные возможности эмуляции, и экземпляр webdriver (который запускает скрипт selenium) может делать все, что делает обычный браузер.

Просто, чтобы показать, как легко использовать селен: -

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

Аналогично, такие команды, как мыши, представьте, find_element_by_class и т.д., сделать это очень простой в использовании селен.

Примечание: Selenium открывает экземпляр webdriver (GUI) на экране и, следовательно, не совсем за кулисами. Если вам это нужно, вам может потребоваться посмотреть другие библиотеки, такие как mechanize.

Всего наилучшего!

Смежные вопросы