如何使用 PRAW 和 python 从特定用户检索 reddit post 数据?

How do I use PRAW and python to retrieve reddit post data from a certain user?

Python 版本:2.7

我正在尝试从 Reddit 用户那里检索 posts 并将它们存储在 python 中的一个变量中。以下是我要完成的示例。它应该从用户那里得到所有 posts。请注意,下面的大部分代码、属性和命令都不是正确的;只是为了说明我的意图。

...

r = praw.Reddit(user_agent=user_agent)
uname : "/u/test"
count = r.get_total_amount_of_post(username=uname)
durl = "https://www.reddit.com/user/Sariel007"
m_data = [" "] * count 

from a in range (0,count)
 m_data[a] = " ".join(r.next(r.get_content(url=durl)))

...

我已经尝试了 get_content 和 get_submission 类,但似乎都没有。假设用户第一个 post 的标题为 "hello",其数据为“123456789 97635”。下一个 post 是 "good day",它的数据是 "abc abc abc"。代码完成后,m_data 应显示:

['123456789 97635','abc abc abc']

完成此类任务的方法是阅读文档,然后在 运行 编写代码的同时进行小而简单的更改。 https://praw.readthedocs.org/

一次写完所有内容是不可能的。您需要从 运行 一个可以导入 praw 的程序开始,然后是一个可以创建 praw 对象的程序,然后是一个可以获取用户的程序,等等。这里还有一些提示:

  1. 打印所有内容。
  2. 如果您不知道可以用它做什么,请尝试在变量上打印 variable.__dict__
  3. 从小事做起,遇到问题时 post 将大部分工作代码提交给 Stack Overflow。

此代码将执行您想要执行的操作,为用户打印所有已提交链接的自测:

from pprint import pprint
import praw

r = praw.Reddit(user_agent='praw_overflow')
user = r.get_redditor('Sariel007')
submissions = user.get_submitted()

self_texts = []
for link in submissions:
    self_texts.append(link.selftext)

print self_texts

用户 Sariel007 没有任何最近的自我 post,所以它现在只打印空字符串,但我在另一个用户身上试过并且有效。

已接受的答案不再有效,因为 get_redditorget_submittedpraw 6.0 中已过时,因此这将是新代码:

reddit = praw.Reddit(client_id='', \
                     client_secret='', \
                     user_agent='', \
                     username='', \
                     password='')

user = reddit.redditor('Sariel007')
submissions = user.submissions.new(limit=None)
self_texts = []
for link in submissions:
    self_texts.append(link.selftext)

print self_texts