Поиск комментария Reddit, содержащего любое слово из списка PSAW python

Привет, я использую PSAW и PRAW для получения комментариев Reddit.

Вот код поиска:

gen = api.search_comments(subreddit="subreddit1, subreddit2", q="word1, word2")

Этот код проверяет комментарии в subreddit1 и 2, но ищет комментарии как со словом1, так и со словом2. Как я могу сделать так, чтобы он искал комментарии, содержащие слово1 или слово2 или оба?

Спасибо (дайте мне знать, если вам нужна дополнительная информация)


person Luke Prior    schedule 20.09.2019    source источник


Ответы (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, по сути, является оболочкой вокруг

api.pushshift.io/reddit/comment/search?q=...

и для вашего вопроса вы можете поиграть с этим веб-сайтом, чтобы лучше понять, что он вернет. API не идеален, вы все равно получите некоторые комментарии, содержащие оба слова, даже если вы использовали |, и вы все равно получите некоторые комментарии, которые содержат только одно из слов, даже если вы использовали &, но эти операторы берут на себя большую часть работа с ваших плеч.

person ThePoetCoder    schedule 20.09.2019
comment
Когда я делаю gen = api.search_comments, переопределяет ли он предыдущий поиск? - person Luke Prior; 24.09.2019
comment
Если я правильно понял ваш вопрос, то да, абсолютно. Если бы вы запускали мой примерный код точно так, как написано, это было бы так, извините за путаницу. Как один из фундаментальных аспектов программирования с переменными, каждый раз, когда вы присваиваете некоторый результат переменной gen, он переопределяет предыдущее значение, сохраненное в gen. Вы можете довольно легко обойти это, либо сделав gen списком и append вашими результатами, либо используя несколько переменных, таких как gen1, gen2, gen3 и т. д. Я изменил свой пост выше, чтобы использовать этот второй вариант. - person ThePoetCoder; 24.09.2019