【问题标题】:PRAW Requesting All Subreddit Posts: Receive 401 ErrorPRAW 请求所有 Subreddit 帖子:收到 401 错误
【发布时间】:2017-08-26 01:56:08
【问题描述】:

我试图从 subreddit 中抓取每一个帖子,一直到 2010 年开始,特别是 /r/nosleep。

我抓取这些帖子的代码是通常的:

for submission in nosleep.submissions(end=int(time.time()):

它运行良好,我检查了我的凭据,它们都有效,它可以轻松获取两年的帖子而没有任何问题。发生的情况是我运行了上面的 for 循环,在最后的某个时间点,它返回一个 401 并使整个程序崩溃。

我已经检查并确认了以下场景:

  • 它会从 2010 年到 2011 年抓取,点击子版块的“开始”并认为在子版块开始之前禁止抓取帖子没有问题。
  • 我已在每个循环中打印出 reddit.auth.limits,它们都以 None 回复,所以我并没有用完请求限额。

解决这个问题的唯一“技巧”是将工作分成两个 for 循环,将 int(time.time()) 分成两个(或更多)部分并像这样迭代每个部分:

for submission in nosleep.submissions(start=middle, end=int(time.time())):
for submission in nosleep.submissions(end=middle):

即便如此,它有时也会返回 401。我怀疑这是因为此循环运行的时间长,但我不知道。有没有人对新方法有任何建议,或者编辑 PRAW 源以适应?

【问题讨论】:

    标签: python-3.x praw reddit


    【解决方案1】:

    尝试 PRAW (pip install --upgrade https://github.com/praw-dev/praw/archive/master.zip) 的最新开发版本,因为此问题应该得到解决。

    【讨论】:

      【解决方案2】:

      对于未来的 Google 员工,此问题也可能是在多次输入错误密码后引起的。重置大约需要 20 分钟,然后它会再次工作。

      【讨论】:

        猜你喜欢
        • 2021-09-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-17
        • 2018-06-12
        • 2017-05-02
        • 1970-01-01
        相关资源
        最近更新 更多