PRAW 请求所有 Subreddit 帖子:收到 401 错误
PRAW Requesting All Subreddit Posts: Receive 401 Error
我试图从 subreddit 中抓取每一个 post,一直追溯到 2010 年开始,特别是 /r/nosleep。
我获取那些 post 的代码是通常的:
for submission in nosleep.submissions(end=int(time.time()):
它工作得很好,我已经检查了我的凭据,它们都有效,而且它可以轻松获取两年的 posts,没有任何问题。发生的事情是我 运行 上面的 for 循环,在最后的某个时刻,它 returns 一个 401 并使整个程序崩溃。
我已经检查并确认了以下情况:
- 它会从 2010 年到 2011 年抓取,它点击 subreddit 的 "start" 并认为在 subreddit 开始之前禁止抓取 posts 没问题。
- 我已经在每个循环中打印出
reddit.auth.limits
,它们都以 None
响应,所以我没有 运行 超出请求限额。
围绕此的唯一 "hack" 是将工作分成两个 for 循环,将 int(time.time())
分成两个(或更多)部分并像这样迭代每个部分:
for submission in nosleep.submissions(start=middle, end=int(time.time())):
for submission in nosleep.submissions(end=middle):
即便如此,它有时也会 returns 一个 401。我怀疑这是因为这个循环 运行ning 的时间长度,但我不知道。有人对新方法或编辑 PRAW 源有任何建议吗?
尝试使用最新的 PRAW 开发版本 (pip install --upgrade https://github.com/praw-dev/praw/archive/master.zip
),因为这个问题应该 得到解决。
对于以后的Googlers来说,这个问题也可能是多次输错密码导致的。重置大约需要20分钟,然后再工作。
我试图从 subreddit 中抓取每一个 post,一直追溯到 2010 年开始,特别是 /r/nosleep。
我获取那些 post 的代码是通常的:
for submission in nosleep.submissions(end=int(time.time()):
它工作得很好,我已经检查了我的凭据,它们都有效,而且它可以轻松获取两年的 posts,没有任何问题。发生的事情是我 运行 上面的 for 循环,在最后的某个时刻,它 returns 一个 401 并使整个程序崩溃。
我已经检查并确认了以下情况:
- 它会从 2010 年到 2011 年抓取,它点击 subreddit 的 "start" 并认为在 subreddit 开始之前禁止抓取 posts 没问题。
- 我已经在每个循环中打印出
reddit.auth.limits
,它们都以None
响应,所以我没有 运行 超出请求限额。
围绕此的唯一 "hack" 是将工作分成两个 for 循环,将 int(time.time())
分成两个(或更多)部分并像这样迭代每个部分:
for submission in nosleep.submissions(start=middle, end=int(time.time())):
for submission in nosleep.submissions(end=middle):
即便如此,它有时也会 returns 一个 401。我怀疑这是因为这个循环 运行ning 的时间长度,但我不知道。有人对新方法或编辑 PRAW 源有任何建议吗?
尝试使用最新的 PRAW 开发版本 (pip install --upgrade https://github.com/praw-dev/praw/archive/master.zip
),因为这个问题应该 得到解决。
对于以后的Googlers来说,这个问题也可能是多次输错密码导致的。重置大约需要20分钟,然后再工作。