搜索包含列表 PSAW python 中任何单词的 reddit 评论
Posted
技术标签:
【中文标题】搜索包含列表 PSAW python 中任何单词的 reddit 评论【英文标题】:Searching for reddit comment containing any word from list PSAW python 【发布时间】:2019-09-20 11:01:05 【问题描述】:您好,我正在使用 PSAW 和 PRAW 获取 reddit cmets。
这里是搜索代码:
gen = api.search_comments(subreddit="subreddit1, subreddit2", q="word1, word2")
此代码检查 subreddit1 和 2 中的 cmets,但会查找同时包含 word1 和 word2 的 cmets。我怎样才能让它搜索包含 word1 或 word2 或两者的 cmets?
谢谢(如果您需要更多信息,请告诉我)
【问题讨论】:
【参考方案1】:简短的回答是,您无法一步完成您的要求,至少在我所见的范围内是这样。但您当然可以分多个步骤来完成。
# to search for either word1 or word 2, use |
gen1 = api.search_comments(subreddit="subreddit1, subreddit2", q="word1|word2")
# to search for both word1 and word 2, use &
gen2 = api.search_comments(subreddit="subreddit1, subreddit2", q="word1&word2")
仅供参考 - 在 PSAW 中搜索 cmets 本质上是一个包装器
api.pushshift.io/reddit/comment/search?q=...
对于您的问题,您可以使用该网站来更好地了解它将返回什么。 API 并不完美,即使您使用 |,您仍然会得到一些包含两个单词的 cmets,即使您使用 &,您仍然会得到一些仅包含一个单词的 cmets,但是这些运算符占了大部分肩上的工作。
【讨论】:
当我执行 gen = api.search_cmets 时,它会覆盖之前的搜索吗? 如果我正确理解您的问题,那么是的,绝对。如果您要完全按照所写的方式运行我的示例代码,那就是这种情况,很抱歉造成混淆。作为使用变量编程的基本方面之一,每次您将一些结果分配给变量gen
时,它都会覆盖之前存储到gen
的内容。您可以通过将gen
设为列表并将append
设为您的结果,或者使用多个变量(如gen1
、gen2
、gen3
等)轻松解决此问题。我已经改变了我的在上面发布以使用第二个选项。以上是关于搜索包含列表 PSAW python 中任何单词的 reddit 评论的主要内容,如果未能解决你的问题,请参考以下文章