python是否可以用于登录受密码保护的站点以检查gmail、论坛等。。。?

python是否可以用于登录受密码保护的站点以检查gmail、论坛等。。。?,python,scripting,python-webbrowser,Python,Scripting,Python Webbrowser,我知道您可以使用webbrowser模块非常简单地打开网页,如: import webbrowser webbrowser.open('http://www.google.com') 但是否可以将登录凭据传递给这些网站?我想创建一个脚本,自动执行一些我经常做的事情,例如,在firefox中打开gmail检查我的邮件 此外,如果可以这样做,您能否以某种方式以安全的方式在此脚本中提供密码?因此,与其在守则中明确指出: pw = "defaultPass123" webbrowser.sendPas

我知道您可以使用webbrowser模块非常简单地打开网页,如:

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请求详细信息传递给外部浏览器



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

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

from urllib import urlencode

credentials = {
    'username': 'bob',
    'password': 'secret'}
url = "http://example.com/login?" + urlencode(credentials)
这是否有效取决于您尝试访问的服务。您可以使用POST请求进行身份验证,但如果目标是在外部浏览器中打开站点,则没有任何一致的方法将POST请求详细信息传递给外部浏览器



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

是的,可以通过使用OpenID


OpenID基本上是一种登录机制,允许用户/程序在不公开其登录名和密码的情况下登录。据我所知,如果你有一个谷歌账户,你已经可以使用OpenID了,很多其他人也实现了OpenID,比如Yahoo Facebook MySpace Flickr等。是的,通过使用OpenID是可能的


OpenID基本上是一种登录机制,允许用户/程序在不公开其登录名和密码的情况下登录。据我所知,如果你有一个谷歌账户,你已经可以使用OpenID了,其他很多人也可以使用OpenID,比如雅虎Facebook MySpace Flickr等等。你的问题是关于访问谷歌网站,还是关于一般网站?如果是前者,那么Google为他们的大部分服务提供API,并且通常包括Python作为一种受支持的语言。例如,要使用Python检查Gmail,请按照上的说明进行操作

即使在谷歌世界之外,你也应该问的第一个问题是“这个网站是否公开了api?”。如果是这样的话,这将比模拟web浏览器或远程驱动浏览器更容易使用


如果你决定只想远程驱动浏览器,那么看看这将为你提供一种简单的方法,从一个单独的应用程序驱动几乎所有的web浏览器。

你的问题是专门针对访问谷歌的网站,还是关于一般的网站?如果是前者,那么Google为他们的大部分服务提供API,并且通常包括Python作为一种受支持的语言。例如,要使用Python检查Gmail,请按照上的说明进行操作

即使在谷歌世界之外,你也应该问的第一个问题是“这个网站是否公开了api?”。如果是这样的话,这将比模拟web浏览器或远程驱动浏览器更容易使用


如果您决定只想远程驱动浏览器,请查看,因为这将为您提供一种从单独的应用程序驱动几乎所有web浏览器的简便方法。

可能重复的可能重复的可能重复的我认为这个问题是关于对现有网站的身份验证,没有开发新的。我从来没有建议OP开发任何新的东西。例如,在firefox中打开gmail查看我的邮件。我同意Gapton的观点,但我认为你可以更具体一点,而不仅仅是指向openid站点。Xoauth是谷歌推荐的通过编程方式访问Gmail的方式。我认为这个问题是关于对现有网站的认证,而不是开发新网站。我从未建议OP开发任何新的东西。例如,在firefox中打开gmail查看我的邮件。我同意Gapton的观点,但我认为你可以更具体一点,而不仅仅是指向openid站点。Xoauth是Google推荐的以编程方式访问Gmail的方式。urlencode是加密数据还是明文密码仍然在这个字符串的某个地方?不太清楚“百分比编码”字符串是什么。它是一种简单的编码方案,用于处理嵌入数据中的非ASCII字符和URL特殊字符(如
=
&
)。这不是一个加密方案,而是构造GET查询字符串时所必需的步骤。如果您担心您的密码在Internet上传输时被看到,您应该通过HTTPS进行身份验证。如何使用HTTPS进行身份验证,或者这取决于您将密码发送到的网站?e、 一般来说,只要确保您的URL以https://开头即可。该网站当然需要支持HTTPS。明白了,谢谢。好的,我想我会尝试一下urllib,看看它是否有效。urlencode是加密数据还是明文密码仍然在这个字符串中?不太清楚“百分比编码”字符串是什么。它是一种用于处理非ASCII字符和URL特殊字符的简单编码方案