python可以用来登录到密码保护的网站检查gmail,论坛等



我知道你可以很简单地使用web浏览器模块打开网页,如:

import webbrowser
webbrowser.open('http://www.google.com')

但是有可能将登录凭据传递到这些网站吗?我想创建一个脚本,自动执行一些我经常做的事情,例如,在firefox中打开gmail来检查我的邮件。

另外,如果可以这样做,您能否以某种安全的方式在此脚本中提供您的密码?与其在代码中直接说:

pw = "defaultPass123"
webbrowser.sendPass(pw) # made up function, I don't think this actually works :)

你能加密这些数据吗?

根据服务器处理身份验证的方式,您可能能够创建一个GET请求来完成此操作:

from urllib import urlencode
credentials = {
    'username': 'bob',
    'password': 'secret'}
url = "http://example.com/login?" + urlencode(credentials)

这是否会工作取决于您正在尝试访问的服务。您可能能够使用POST请求进行身份验证,但如果目标是在外部浏览器中打开站点,则没有任何一致的方式将POST请求详细信息传递给外部浏览器。


你可以加密密码,是的。但是,由于脚本需要解密密码才能将其发送到服务器,因此任何访问脚本的人都可能仍然可以读取您的密码。(尽管它可能会阻止非程序员的窥探者读取您的密码。)

是的,通过使用OpenID是可能的。

http://openid.net/

OpenID基本上是一种登录机制,允许用户/程序登录而不暴露他们的登录名和密码。据我所知,如果你有一个Google帐户,你已经可以使用OpenID,许多其他公司也实现了OpenID,如雅虎,Facebook, MySpace, Flickr等

你的问题是关于访问谷歌网站的,还是关于一般的网站?如果是前者,那么Google为他们的大多数服务提供api,并且通常包括Python作为支持的语言。例如,要使用Python检查Gmail,请按照http://code.google.com/p/google-mail-xoauth-tools/wiki/XoauthDotPyRunThrough

上的说明操作

即使在谷歌世界之外,你应该问的第一个问题是"这个网站公开api吗?"如果它能做到这一点,那么使用起来将比模拟网页浏览器或远程驱动浏览器容易得多。

如果你决定你只是想远程驱动浏览器,那么看看Selenium,因为它会给你一个简单的方法来驱动几乎任何web浏览器从一个单独的应用程序

相关内容

最新更新