3

Python版本:2.7

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

...

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 类,但没有任何东西看起来很接近。假设用户的第一篇文章标题为“你好”,其数据为“123456789 97635”。下一个帖子是“good day”,它的数据是“abc abc abc”。代码完成后,m_data 应显示:

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

2 回答 2

5

接受的答案不再有效,因为get_redditor并且get_submitted已经过时,praw 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
于 2018-08-29T10:49:53.917 回答
3

完成这样的事情的方法是阅读文档,并在运行代码时进行小而简单的更改。https://praw.readthedocs.org/

试图一次写出整个事情是不可能的。您需要首先运行一个可以导入 praw 的程序,然后是一个可以创建 praw 对象的程序,然后是一个可以获取用户的程序,依此类推。这里还有一些提示:

  1. 打印一切。
  2. variable.__dict__如果您不知道可以用它做什么,请尝试在变量上打印。
  3. 从小处着手,当您遇到问题时,将大部分工作代码发布到 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 最近没有任何自发帖子,所以它现在只打印空字符串,但我在另一个用户身上尝试过,它成功了。

于 2015-08-31T16:00:40.477 回答