如何让机器人重复循环?

时间:2019-07-31 11:41:54

标签: python loops instagram bots

我正在运行一个Instagram测试机器人作为学校项目。

但是,我尝试在每次操作之间增加一些睡眠时间(跟随+喜欢)。

机器人在执行第一个操作后便进入睡眠状态,然后停止工作。


import argparse
import os
import sys
import time
from tqdm import tqdm
sys.path.append(os.path.join(sys.path[0], '../'))
from instabot import Bot
parser = argparse.ArgumentParser(add_help=True)
parser.add_argument('-u', type=str, help="username")
parser.add_argument('-p', type=str, help="password")
parser.add_argument('-proxy', type=str, help="proxy")
parser.add_argument('users', type=str, nargs='+', help='users')
args = parser.parse_args()
bot = Bot()
bot.login(username=args.u, password=args.p,
          proxy=args.proxy)
for username in args.users:
   medias = bot.get_user_medias(username, filtration=False)
if len(medias):
        likers = bot.get_media_likers(medias[0])

for liker in tqdm(likers):
           bot.like_user(liker, amount=1)  
          followed= bot.follow(liker)  
          while(follow): 
            time.sleep(60) 

我希望能够在机器人首次进入睡眠状态后使其保持运行状态。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我没有instagram,所以我无法对其进行测试,但是我看到的代码中几乎没有问题。

第一个是您只获取最后一个用户的媒体。它可以通过以下方式解决:

medias = []
for username in args.users:
   medias += bot.get_user_medias(username, filtration=False)

然后类似的想法出现在喜欢者身上

likers = []
for media in medias:
    likers += bot.get_media_likers(media)

然后向您提出实际问题。您喜欢点赞和跟随,而不是在两者之间。而且您可以将它循环使用,而您永不中断。因此,如果您想在点赞之后等待并关注,然后执行以下操作:

for liker in tqdm(likers):
    bot.like_user(liker, amount=1)
    followed = bot.follow(liker)
    time.sleep(60)