【问题标题】:How to scrape all comments from a subreddit on Reddit?如何从 Reddit 上的 subreddit 中抓取所有评论?
【发布时间】:2015-09-15 03:49:59
【问题描述】:

我正在尝试从 subreddit 中抓取所有 cmets。我找到了一个名为 PRAW 的库。举个例子

import praw
r = praw.Reddit('Comment parser example by u/_Daimon_')
subreddit = r.get_subreddit("python")
comments = subreddit.get_comments()

但是,这只返回最近的 25 cmets。如何解析 subreddit 中的所有 cmets?在Reddit界面,有一个next按钮,应该可以一页一页的回到历史记录。

【问题讨论】:

    标签: python reddit praw


    【解决方案1】:

    来自the docs

    完整用法请参见 UnauthenticatedReddit.get_cmets()。

    那个函数有*args和**kwargs,函数注释:

    附加参数直接传递给get_content()。注意:url参数不能修改。

    因此,我查看了该函数(找到它here)。 get_content 的参数之一是 limit

    limit – 要获取的内容条目数。如果限制 如果 limit 为 None,则获取尽可能多的条目(reddit 每个请求最多返回 100 个,但是,PRAW 会根据需要自动发出额外的请求)。

    (强调添加)。所以我的测试是:

     comments=subreddit.get_comments(limit=None)
    

    我得到了 30+ 个 cmets(可能是 100 个限制,但我必须手动完成,所以我认为 30 个就足够了)。

    【讨论】:

    • 好的,我明白了,但是,我需要从 subreddit 获取 all cmets。我正在做数据分析,至少需要 10,000 cmets
    • 如文档所述,(reddit returns at most 100 per request, however, PRAW will automatically make additional requests as necessary).。因此,如果您不断要求更多数据,它会获取更多数据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-29
    • 1970-01-01
    • 1970-01-01
    • 2021-08-29
    • 2017-07-14
    • 2020-10-17
    相关资源
    最近更新 更多