3

我正在开发电子邮件应用程序的原型。我需要在我的应用程序的 python 代码中访问我的个人 gmail 帐户才能执行此操作。我知道我可能可以使用 google API 完成此操作,但我认为尝试通过标准用户界面直接访问对我来说是一个好习惯。我已经概述了我认为在这个过程中涉及的步骤,我希望输入我在步骤中提出的结构以及如何在 python 中实际实现。

第 1 步:打开登录 gmail 的 url

  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 实际提交 post 请求?我假设 urlopen 只处理获取请求?
  5. 如何从登录页面保存身份验证所需的 cookie、隐藏的表单输入等,并将它们包含在我的获取请求中?

当我对此进行更多思考时,我想知道我是否以正确的方式接近它。原则上,我希望计算机做的就是进入登录页面,输入登录数据并单击提交按钮。在 excel 中,您可以通过录制宏来完成此操作。您可以设想服务器进入 Web 浏览器,输入页面地址,填写信息并单击提交。如果这里有一个等效的解决方案,它似乎比通过 urllib 命令重新创建整个过程要容易得多。希望以上推理是有道理的。欣赏你的想法。

埃文

4

1 回答 1

0

Selenium 是一个 python 模块,您可以使用它来模拟您想要做的事情。它具有出色的仿真能力,并且 webdriver 实例(一个 selenium 脚本将启动)可以完成普通浏览器所做的一切。

只是为了展示使用硒是多么容易:-

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

类似地,诸如 click、submit、find_element_by_class 等命令使 selenium 的使用变得非常容易。

注意: Selenium 在屏幕上打开一个 webdriver 实例 (GUI),因此并不完全在幕后。如果需要,您可能需要查看其他库,例如 mechanize。

一切顺利!

于 2014-03-19T21:57:23.257 回答