循环直到一定时间,然后循环下一段代码

时间:2019-05-23 20:22:57

标签: python python-3.x instagram bots

我有一个喜欢基于Hashtag的instagram图片的机器人。该代码喜欢循环中包含的特定主题标签集。我想从早上7点至晚上11:30,然后从晚上11:30至上午7点,从一组特定的标签开始,就像在另一个循环中使用另一段代码的另一组标签一样。该机器人随后将以24/7运行。

到目前为止,机器人的代码是这样,它只喜欢一组特定的主题标签,我需要添加第二部分代码:

    import os
        import time
        import random
        from instapy import InstaPy
        from instapy import smart_run

    like_tag_list = ['hashtag1','hashtag2','hashtag3']

    insta_username = '########'
    insta_password = '########'

session = InstaPy(username=insta_username,
password=insta_password,
headless_browser=True)
#multi_logs=True)


session.login()

            try:
                while True:

            # actions

                    session.like_by_tags(like_tag_list, amount=9, interact=True)
                    session.unfollow_users(amount=random.randint(75, 100),
                                       InstapyFollowed=(True, "nonfollowers"),
                                       style="FIFO",
                                       unfollow_after=8 * 60 * 60, sleep_delay=600)
                    #session.unfollow_users(amount=random.randint(75, 150),
                                       #InstapyFollowed=(True, "all"), style="FIFO",
                                       #unfollow_after=24 * 60 * 60, sleep_delay=501)

            finally:

有人可以帮助我让该机器人从早上7点至晚上11:30循环第一部分代码,然后让我知道在第二循环中添加第二组主题标签的位置。我会非常感激的。

巨大的模糊效果,希望一切都有道理。

1 个答案:

答案 0 :(得分:1)

我对您的核心循环进行了一些编辑,它应该可以正常工作。定义两个列表,一个列出一个时间段的标签,另一个列出另一个时间段的标签。在while循环的每次迭代中,获取当前日期时间,然后再从中提取小时,并检查是否将基于该当前时间的正确主题标签放在小时上,然后使用tag_to_use列表。一个小问题是,我相信now.hour是一个整数,因此它将不支持晚上11:30的时间,我将其设置为24,所以它将是从上午7点到午夜。

import datetime
like_tag_list1 = ['hashtag1','hashtag2','hashtag3']
like_tag_list2 = ['hashtag3','hashtag4','hashtag5']
while True:
    now = datetime.datetime.now()
    if now.hour >= 7 and now.hour < 24:
        tags_to_use = like_tag_list1
    else:
        tags_to_use = like_tag_list2
    session.like_by_tags(tags_to_use, amount=9, interact=True)
    session.unfollow_users(amount=random.randint(75, 100),
             InstapyFollowed=(True, "nonfollowers"),
             style="FIFO",
              unfollow_after=8 * 60 * 60, sleep_delay=600)