有什麼辦法來限制對reddit上特定帖子評論的深度探索。我們有replace_more_comments,它試圖儘可能多地替換more_comments,但是我們可以限制這種擴展。或者,我是否需要通過這些註釋編寫我自己的dfs版本?在PRAW中探索特定深度的評論?
感謝
有什麼辦法來限制對reddit上特定帖子評論的深度探索。我們有replace_more_comments,它試圖儘可能多地替換more_comments,但是我們可以限制這種擴展。或者,我是否需要通過這些註釋編寫我自己的dfs版本?在PRAW中探索特定深度的評論?
感謝
既然你提到replace_more_comments
我假設你正在談論PRAW 3.5。
可悲的是,PRAW不提供形式爲comment.depth
的信息。它實際上不保存這些信息。
如果你想得到一個設定的深度的評論,這是低的(如只有第一和第二級評論),那麼你可以做到沒有dfs或bfs。
submission.replace_more_comments(limit=None,threshold=0)
for top_level_comment in submission.comments:
for second_level_comment in top_level_comment.replies:
print(second_level_comment.body)
如果你想要非固定深度,那麼你剩下自己的實現。但由於如何設置評論和從reddit api檢索,您應該使用bfs而不是dfs。
還有另外一種方法,那就是在PRAW 4.0中可用(它是昨天發佈的)。 Here是文檔的特定部分,我指的:
submission.comments.replace_more(limit=0)
comment_queue = submission.comments[:] # Seed with top-level
while comment_queue:
comment = comment_queue.pop(0)
print(comment.body)
comment_queue.extend(comment.replies)
雖然真棒,能夠做自己的廣度優先遍歷,CommentForest提供了一個方便的方法,列表(),它返回一個以與上面的代碼相同的順序遍歷的評論列表。
submission.comments.replace_more(limit=0)
for comment in submission.comments.list():
print(comment.body)
由此你,以便BFS會給你收到的評論列表:因此,如上述可改寫。
[first_level_comment, first_level_comment, first_level_comment, second_level_comment,
second_level_comment, third_level_comment, ...]
在這種情況下,根據id和parent_ids拆分它們並不複雜。
是的,我需要去閱讀4.0文檔。謝謝!! – nighthowler