【发布时间】:2014-04-29 16:03:46
【问题描述】:
我有一个机器人脚本,它连接到 Twitter API(使用 tweepy 库),获取 atm 趋势标签数据并撰写一条以该列表中的标签结尾的推文。它按不超过 120 个字符的行读取文本,但有时会发生热门话题标签超过 20 个字符,这会导致推文超过 140 个字符的推特限制,从而破坏脚本的运行。
所以我想写一个嵌套循环,它会说这样的话:
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
我试过了,但没用:
for line in f:
trends1 = api.trends_place(1)
# print trends1
hashtags = [x['name'] for x in trends1[0]['trends'] if x['name'].startswith('#')]
# print hashtags
print hashtags[0]
if len(hashtags[0]) <= 20:
trend_hashtag = hashtags[0]
api.update_status(line + trend_hashtag)
elif len(hashtags[0]) > 20:
trend_hashtag = hastags[1]
api.update_status(line + trend_hashtag)
elif len(hashtags[1]) > 20:
time.sleep(900)
time.sleep(10800)
我刚开始学习python,我做错了什么,你能帮帮我吗?
连接到 twitter api 并在列表中获取趋势标签工作正常,问题只是在描述的循环中。谢谢!
【问题讨论】:
-
为什么
time.sleep(10800)在for循环中?这将在循环的每次迭代中暂停您的程序 3 小时。 -
这是试图指示机器人每 3 小时只发一次推文,这样就不会太垃圾了
标签: python loops twitter tweepy