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

时间:2015-08-31 15:36:10

标签: python praw

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"。下一篇文章是#34;美好的一天"它的数据是" abc abc abc"。代码完成后,m_data应显示:

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

2 个答案:

答案 0 :(得分:1)

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

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

  1. 打印所有内容。
  2. 如果您不知道可以用它做什么,请尝试在变量上打印variable.__dict__
  3. 从小处开始,当遇到问题时,将大部分工作代码发布到Stack Overflow。
  4. 此代码将执行您尝试执行的操作,为用户打印所有提交链接的自检:

    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最近没有任何自我发布,所以它现在只打印空字符串,但我在另一个用户上尝试了它并且它有效。

答案 1 :(得分:0)

已接受的答案不再起作用,因为get_redditor中的get_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