【问题标题】:How can I pass my ID and my password to a website in Python using Google App Engine?如何使用 Google App Engine 将我的 ID 和密码传递到 Python 中的网站?
【发布时间】:2010-12-26 08:03:49
【问题描述】:

这是我使用 Google App Engine 通过 URL 获取网页 HTML 源(代码)的一段代码:

from google.appengine.api import urlfetch
url = "http://www.google.com/"
result = urlfetch.fetch(url)
if result.status_code == 200:
   print "content-type: text/plain"
   print
   print result.content

这里一切都很好,但有时我需要从我注册的站点获取页面的 HTML 源代码,并且只有在我首先传递我的 ID 和密码时才能访问该页面。 (实际上,它可以是任何网站,例如任何提供邮件帐户的网站,如 Yahoo:https://login.yahoo.com/config/mail?.src=ym&.intl=us 或任何其他用户通过首先注册获得免费帐户的网站)。 我能以某种方式在 Python 中实现(通过“Google App Engine”)吗?

【问题讨论】:

    标签: python google-app-engine passwords


    【解决方案1】:

    您可以检查 401 的 HTTP 状态代码,“需要授权”,并提供网站要求的 HTTP 授权类型(基本、摘要等) - 参见例如here 了解更多详情(这里并没有太多关于 GAE 的内容——这是学习 HTTP 细节并遵守它们的问题!-)。

    【讨论】:

    • Alex,再次感谢您的回答,但我就是不明白:(1)“您可以检查 401 的 HTTP 状态代码” - 我需要在哪里检查此 HTTP 状态代码?我查看了我在问题中提到的 Yahoo 页面的 HTML 源代码,但没有找到与 HTTP 状态代码相关的任何内容; (2) “提供网站要求的那种 HTTP 授权(基本、摘要等)”——再说一遍,我该怎么做?;
    • (3) 您给我的链接指向某种机器人文档(CheckUpDown 机器人)。你是不是在建议我使用那个机器人?如果是,那我恐怕在这种情况下无法使用 GAE;
    • 我刚刚在这里发布了第一个问题(关于检查 HTTP 状态代码):stackoverflow.com/questions/1901701/… 所以,如果你愿意,你可以在那里回答。
    • @brilliant,我只是在向您介绍 401 含义的简短文档。我已经用更多细节回答了另一个问题,包括有关如何使用 urllib2 提供基本身份验证的指示(如果您访问的域需要,urllib2 也可以进行摘要身份验证)。
    • (1) “我只是在向您介绍 401 含义的简短文档。” - 我懂了。 (2)“我已经详细回答了另一个问题”-是的,谢谢。我现在正在研究所有这些材料。
    【解决方案2】:

    正如亚历克斯所说,您可以检查状态代码并查看它想要什么类型的自动化,但您不能概括它,因为某些网站不会给出任何提示或只允许通过非标准表单登录,在这些情况下,您可以必须使用表单自动化登录过程,因为您可以使用像斜纹这样的库 (http://twill.idyll.org/) 或为每个站点编写一个特定的表单提交代码。

    【讨论】:

    • 你好 Anurag Uniyal!谢谢您的答复。我想我在这里遗漏了一些基础知识:(1)“正如亚历克斯所说,您可以检查状态代码并查看它想要什么类型的授权” - 我不知道该怎么做;
    • (2) "...您可能必须使用表单自动化登录过程,因为您可以使用像斜纹布这样的库..." - 是否可以在 "谷歌应用引擎”?我的意思是,使用斜纹布不会与“Google App Engines”冲突吗?
    • 我刚刚在这里发布了第一个问题(关于检查 HTTP 状态代码):stackoverflow.com/questions/1901701/… 所以,如果你愿意,你可以在那里回答。
    • 我不确定,但如果斜纹是纯 python 那么你可以在 GAE 上使用它,否则使用 urllib 你可以发布表单
    猜你喜欢
    • 2011-07-11
    • 1970-01-01
    • 2022-12-14
    • 1970-01-01
    • 2012-05-26
    • 2012-06-19
    • 1970-01-01
    • 2016-04-05
    • 1970-01-01
    相关资源
    最近更新 更多