【发布时间】:2015-03-26 21:38:23
【问题描述】:
我目前正在使用请求 API 编写一个简短的脚本,我需要访问我的电子邮件箱以检索一些信息。
所以我写了这段代码来进行身份验证:
#! /usr/bin/python3
import requests
payload = {'horde_user': '',
'horde_pass': '',
'login_post': '1'}
r = requests.post('http://webmail.technion.ac.il/login.php', data=payload)
print(r.status_code)
print(r.text)
显然,我在 payload 字典中将 horde_user 替换为我的用户名,并将 horde_pass 替换为我的密码。
但是输出的是初始页面的源代码,而我希望它是我邮箱的内容。
状态码是 200,而它应该是 302。有人可以向我解释我做错了什么。
非常感谢您的帮助!
【问题讨论】:
-
尝试先请求页面,然后从第一个请求中提取会话 ID 以用于登录尝试。我敢打赌它失败了,因为您正在发送旧的会话 ID,而网站正在拒绝它们并将您发送回带有新会话 ID 的登录页面。 cookie 中的会话 ID 为
Horde和horde_secret_key。 -
当我尝试登录时,我得到一个 200 和一条错误消息,我的用户名/密码似乎是错误的(显然)所以你能提供一个测试帐户吗?还将
r.text写入.html 文件并打开它。也许你会看到错误。 -
如果您查看页面的源代码,您会发现有一些隐藏的输入 - 尝试将它们包含在有效负载中。
标签: python http python-3.x http-request