1

该脚本成功获取了 200 响应对象、获取 cookie 并返回 reddit 的股票主页源。但是,它应该获取“最近的活动”子页面的来源,该子页面只能在登录后访问。这让我认为它无法正确登录但用户名和密码是准确的,我已经仔细检查过。

#!/usr/bin/python
import requests
import urllib2

auth = ('username', 'password')
with requests.session(auth=auth) as s:
    c = s.get('http://www.reddit.com')
    cookies = c.cookies
    for k, v in cookies.items():
            opener = urllib2.build_opener()
            opener.addheaders.append(('cookie', '{}={}'.format(k, v)))
            f = opener.open('http://www.reddit.com/account-activity')
            print f.read()
4

2 回答 2

0

看起来您正在使用标准的“HTTP Basic”身份验证,这不是 Reddit 用于登录其网站的方式。(几乎没有网站使用 HTTP Basic(它会弹出一个请求身份验证的模式对话框),但实现自己的用户名/密码表单)。

您需要做的是获取主页,阅读登录表单字段,填写用户名和密码,将响应发布回网站,获取生成的 cookie,然后在以后的请求中使用 cookie。可能还有很多其他细节需要你去解决,但你必须进行实验。

于 2012-02-10T07:31:36.810 回答
-1

我只是觉得也许我们遇到了同样的问题。我得到状态码 200 ok。但脚本从未让我登录。我得到了一些建议和帮助。希望你也让我知道什么对你有用。似乎 reddit 也在使用相同的系统。

查看正在讨论我的问题的此页面。 使用 aspx 站点上的请求的身份验证问题

于 2016-07-26T05:19:59.570 回答