Как получается, что он захватывает только топ-сообщения от r / nba?
Из-за относительной популярности каждого из этих подредактов.
Если мы посмотрим на веб-версию запроса, который вы делаете, это станет очевидным:
https://reddit.com/r/nba+nbadiscussion+warriors+NYKnicks/top?t=year
/ r / nba значительно более популярны, чем другие субредиты, поэтомуего главные посты (отсортированные по количеству баллов) затмевают посты других субреддитов.Для справки, вот главные посты года для других подразделов:
На момент написания данного поста пост, набравший наибольшее количество баллов в любом из этих подразделов, составлял этот от / р / воинов, с 5171 очками.Это далеко от 63 тыс. Пунктов, которые имеет верхний пост в / r / nba .
Ари Виктор предлагает хороший способ получения сообщений от каждого сабвуфера;а именно, перебирая список подписчиков и индивидуально получая их главные сообщения.
Обратите внимание, что описанное выше поведение не происходит с горячими списками.С помощью горячих списков вы можете рассчитывать на равномерное распределение всех задействованных субреддитов, поскольку баллы по результатам взвешиваются по размеру сообщества.Итак, еще одно возможное решение заключается в следующем:
def run_bot():
print("Grabbing subreddit")
subs = r.subreddit('nba+nbadiscussion+warriors+NYKnicks')
print("Grabbing posts in sub")
for posts in subs.hot(limit=5):
article_url = posts.url
post_title = posts.title
print(post_title)
print(article_url)
run_bot()
Обратите внимание, что это решение получает горячие сообщения, а не топ-сообщения.Хотите ли вы горячие или топ-сообщения, зависит от вашего конкретного приложения.