在python中循环浏览twitter趋势数据

2024-04-27 00:20:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个bot脚本,它连接到Twitter API(使用tweepy库),获取atm趋势的hashtags数据,并编写一条tweet,以该列表中的hashtag结尾。它逐行读取长度不超过120个字符的文本,但有时最热门的标签长度超过20个字符,这会导致tweet超过140个字符的twitter限制,从而导致脚本无法运行。在

所以我想写一个嵌套循环,它会这样说:

get twitter trends data
if the top hashtag is longer than 120 characters
then check the second one
and if even the second one is longer than 120 characters
wait for 15 min and check again
tweet when you find a hashtag than is smaller or same as 20 characters 

我试过了,但没用:

^{pr2}$

我刚开始学python,我做错什么了,你能帮我吗?在

连接到twitter api并在列表中获取趋势标签工作正常,问题就在所描述的循环中。谢谢!在


Tags: the脚本列表ifischecktwitter标签
1条回答
网友
1楼 · 发布于 2024-04-27 00:20:32

您的第一个elif似乎与问题顶部描述的规范不匹配。在

if语句检查第一个hashtag是否≤20个字符。如果是的话,它会发微博;如果没有,就不会了。到目前为止,还不错。然后,您的第一个elif语句被保证执行-因为如果len(hashtags[0])不是{},那么它肯定是{},因此您永远不会得到第二个{}。如果您想检查第二个hashtag是否≤20个字符,那么您的第一个elif应该如下所示:

elif len(hashtag[1]) <= 20:
    trend_hashtag = hashtags[1] # you have a typo here btw
    api.update_status(line + trend_hashtag)

最后,最后一个elif应该是else。如果你想让它在tweets之间睡眠3个小时,那么每次tweet之后都应该给它打电话time.sleep(10800)。总而言之,您的代码应该看起来更像这样:

^{pr2}$

这样,你只需在发完微博后睡3个小时——否则(如果你没有发微博),你只睡15分钟,然后再试一次。在

相关问题 更多 >