我正在编写一个bot,它解析包含特定字符的文章标题的特定子项。正如您在下面看到的,在r.subreddit()
方法中,我已经传递了'nba'
,但是还希望bot解析'nbadiscussion'
、'warriors'
和'NYKnicks'
。你知道吗
为什么它只从/r/nba
那里抢到最热门的职位?谢谢!你知道吗
def run_bot():
sub = r.subreddit('nba+nbadiscussion+warriors+NYKnicks')
print("Grabbing subreddit")
subs = sub.top('year', limit=5)
print("Grabbing posts in sub")
for posts in subs:
article_url = posts.url
post_title = posts.title
print(post_title)
print(article_url)
string1 = post_title
durantRegex = re.compile(r'[KevinDurantKnicks]')
x = durantRegex.search("Kevin Durant Knicks", string1)
run_bot()
如果你想从每个sub得到5个结果,你最好在sub列表上使用for循环。你知道吗
以此类推,你为每个sub做一个动作。每个sub会得到5个,做你需要它做的,然后移动到下一个subreddit,希望能有所帮助。你知道吗
这是因为您在
subs = sub.top('year', limit=5)
中指定的limit=5
将您的结果集从组合子项限制为总共五个结果。你知道吗尝试增加
limit
参数或将其全部删除,以查看其他子项的结果。你知道吗因为这些子项的相对流行度。你知道吗
如果我们查看您正在进行的查询的web版本,就会发现:
https://reddit.com/r/nba+nbadiscussion+warriors+NYKnicks/top?t=year
/r/nba比其他子网站更受欢迎,所以它的排名靠前(按得分排序)比其他子网站的排名靠后。以下是本年度其他副标题的主要职位,以供参考:
在这篇文章发表的时候,这些子文章中得分最高的是来自/r/勇士的this one,得到5171分。这与top post in /r/nba的63k点相差甚远。你知道吗
arivictor提出了一种从每个sub获取帖子的好方法,即遍历sub列表并逐个获取它们的最上面的帖子。你知道吗
请注意,上述行为不会发生在热列表中。对于热门列表,您可以期望所有相关子站点的分布大致均匀,因为post得分是根据社区大小进行加权的。因此,另一种可能的解决方案如下:
注意,这个解决方案得到的是热门帖子而不是热门帖子。你想要的是热门帖子还是热门帖子取决于你的具体应用。你知道吗
相关问题 更多 >
编程相关推荐