Содержание.

Содержание

Ставим лайки

Эта опция необходима для настройки действий actions с использованием методов, название которых начинается с префикса interact_by_... При этом при использовании действий actions с префиксом like_by_... постам будут ставиться лайки по умолчанию.

# ~ 70% просмотренных ботом InstaPy постов будут поставлены лайки

session.set_do_like(enabled=True, percentage=70)

Комментируем

# включить комментарии (по умолчанию enabled=False) и установить долю комментируемых постов 25%, то есть каждое четвертое фото будет комментироваться

session.set_do_comment(enabled=True, percentage=25)
# определяем список текстов для комментариев, один из которых будет случайным образом выбран при комментировании поста:

session.set_comments(['Awesome', 'Really Cool', 'I like your stuff'])

Если вы конфигурируете порядок использования условных комментариев на основе содержимого заголовка поста, то комментирование будет привязываться к контексту (смыслу выбранного для комментирования) поста. Содержимое комментариев, задается в виде списка словарей, каждый из которых в качестве ключа словаря содержит определение некоторого ключевого слова mandatory_words и соответствующий ему по смыслу список текстов комментариев. В списке условных комментариев последовательно просматриваются ключевые слова (а точнее ключи словаря) до тех пор, пока не будет найден первый элемент, который удовлетворяет заданному условию. Затем будет случайным образом выбран один из комментариев, по смыслу связанный с ключевым словом. Лучше всего принцип использования условных комментариев можно понять на примере:

comments = [
    # удовлетворяет условию либо "icecave", либо OR "ice_cave":
    {'mandatory_words': ["icecave", "ice_cave"], 'comments': ["Nice shot. Ice caves are amazing", "Cool. Aren't ice caves just amazing?"]},

    # удовлетворяет условию "high_mountain" OR ("high" AND "mountain"):
    {'mandatory_words': ["high_mountain", ["high", "mountain"]], 'comments': ["I just love high mountains"]},

    # удовлетворяет условию ("high" AND "tide"):
    {'mandatory_words': [["high", "tide"]], 'comments': ["High tides are better than low"]}

    # удовлетворяет условию "summer" AND ("lake" OR "occean"):
    {'mandatory_words': [["summer", ["lake", "occean"]], 'comments': ["Summer fun"]}
]
session.set_comments(comments)

Вы также можете задать условные комментарии для постов, содержащих определенные типы мультимедиа (Photo/Video).

session.set_comments(['Nice shot!'], media='Photo')
session.set_comments(['Great Video!'], media='Video')

# используя эту опцию вы можете добавить в комментарий имя пользователя, запостившего пост с фото  
session.set_comments(['Nice shot! @{}'], media='Photo')

Поддержка Emoji

Чтобы использовать эмодзи, просто просто добавьте к строке префикс u перед открывающим апострофом:

session.set_comments([u'This post is 🔥',u'More emojis are always better 💯',u'I love your posts 😍😍😍']);
# или
session.set_comments([u'Emoji text codes are also supported :100: :thumbsup: :thumbs_up: \u2764 💯💯']);

Текстовые коды Emoji реализованы с использованием двух типов кодирования. Полный список кодов смайликов можно найти на Python Emoji Github , также вы можете использовать альтернативную сокращенную схему кодирования, реализованную для текстовых кодов Emoji по ссылке.

Пописываемся

Опция активируется с использованием параметра enabled=False. В примере кода ниже подписываемся на 10% пользователей, разместивших просмотренные ботом посты. Значение параметра times=1 задает порядок запроса подписки только один раз, то есть бот подписывается на пользователя единожды или если он отписался, то еще раз.

session.set_do_follow(enabled=True, percentage=10, times=2)

«Умные» smart хэштеги

Создаем умные хэштеги на основе рейтинга https://displaypurposes.com, при этом заблокированные и спам-теги будут автоматически отфильтрованы.

Параметры:

  • limit определяет количество сгенерированных хэштегов по заданным смысловым значениям;
  • sort сортирует сгенерированные списки хэштегов с опциями top и random;
  • log_tags выводит в консоли сгенерированные хэштеги перед использованием;
  • use_smart_hashtags активирует опцию like_by_tag для использования «умных» хэштегов.
session.set_smart_hashtags(['cycling', 'roadbike'], limit=3, sort='top', log_tags=True)
session.like_by_tags(amount=10, use_smart_hashtags=True)

Хэштеги Smart Location

С помощью этой опции генерируются «умные» хэштеги на основе рейтинга https://displaypurposes.com/map с учетом заданного местоположения. Забаненные и спам-теги автоматически отфильтровываться.

session.set_smart_location_hashtags(['204517928/chicago-illinois', '213570652/nagoya-shi-aichi-japan'], radius=20, limit=10)
session.like_by_tags(amount=10, use_smart_location_hashtags=True)

Параметры:

  • radius определяет радиус вокруг заданного местоположения в милях;
  • limit ограничивает количество генерируемых хэштегов по заданному смысловому значению хэштега;
  • log_tags выводит сгенерированные хэштеги в консоли перед их использованием (по умолчанию log_tags=True).

Quota Supervisor

Получаем полный контроль над действиями actions путем задания самых сложных правил (квот):

session.set_quota_supervisor(enabled=True, 
                             sleep_after=["likes", "comments_d", "follows", "unfollows", "server_calls_h"], 
                             sleepyhead=True, 
                             stochastic_flow=True, 
                             notify_me=True,
                             peak_likes_hourly=57,
                             peak_likes_daily=585,
                             peak_comments_hourly=21,
                             peak_comments_daily=182,
                             peak_follows_hourly=48,
                             peak_follows_daily=None,
                             peak_unfollows_hourly=35,
                             peak_unfollows_daily=402,
                             peak_server_calls_hourly=None,
                             peak_server_calls_daily=4700)

Параметры:

enabled в этот параметр передается True для немедленной активации activate или False для деактивации deactivate контроля квот в любой момент времени.

Опции с префиксом peak_likes_... используются для определения пика или максимального числа поставленных лайков ежечасно и ежедневно соответственно. Если вы не хотите контролировать постановку лайков, то просто удалите параметры с префиксом peak_likes... или используйте инструкцию вида peak_likes=(None, None). После того, например, как пиковое число лайков за заданный период достигает максимума, то бот будет пропускать это действие, а его другие действия будут активны, например, подписка на пользователей или отписка от них.

При запуске на сервере пропуска лайка не будет и при достижении максимума по одному из параметров peak_likes_... будет произведено завершение программы. Хотя вы можете контролировать перезапуск программы сервером путем перевода ее в спящий режим после достижения любого пика (максимума), для этого используется параметр sleep_after.

Каждое не лимитированное действие, кроме комментирования, будет в обычном режиме выполняться после достижения пика (максимума). Так как комментирование без лайка по сути не допустимо.

Параметр sleep_after используется для перевода бота InstaPy в спящий режим после достижения пика (максимума), а не для пропуска заданного действия (или выхода из программы при запуске на стороне сервера). Превышение любого числа заданного вида действий может включать спящий режим, например, [«likes", "comments", "follows", "unfollows", "server_calls"].

Например, инструкция sleep_after=['follow_h'] будет отправлять бот в спящий режим после достижения часового пика действий подписки. А sleep_after=['like_d', 'follow', 'server_calls_d'] заставит бот перейти в спящий режим после достижения дневного пика (максимума) лайков, общего числа подписок на другие аккаунты (ежечасного и ежедневного), а также ежедневного числа вызовов сервера (запусков скрипта).

Примечание: используется синтаксис следующего вида: значение вида likes используется для задания как почасового, так и ежедневного перехода в спящий режим. Вида – likes_h – почасового перехода и соответственно likes_d для определения ежедневного пика (максимума) числа определенных действий.

После того, как бот «заснул», он проснется, когда наступит новый час или день (в соответствии с заданным интервалом), а затем продолжит свою деятельность.

Опция sleepyhead может помочь сделать работать боту более человекообразной, то есть он будет просыпаться случайно: немного позже или раньше в выбранном временном интервале времени вблизи точного заданного времени пробуждения.

Например, если оставшееся время составляет 17 минут, то вместо этого он может проспать 20 минут и так каждый раз будут выбираться разные случайные значения интервала «сна».

Параметр stochastic_flow обеспечивает плавное генерирование (выбор) точного пикового ( максимального) значения по заданным исходным значениям. То есть каждый час/день будут генерироваться новые значения пиков (максимумов) с учетом некоторого расстояния с одной стороны интервала от заданного значения. Например, ваш заданный пик (максимум) лайков в час составляет 45 в час, в следующий час будет выбрано значение 39, а в следующем – 43 и т. д.

Опция notify_me обеспечивает отправку всплывающих уведомлений о важных состояниях супервизора, результатах его работы и директивы управления, например, переход в «спящий» режим, пробуждение и сообщения о завершении работы бота.

Примеры

Пример # 1

Клаудио написал новый сценарий бота, в который ставит лайки и комментирует посты. Он хочет, чтобы программа комментировала безопасно и поэтому он боится превышения почасового и дневного лимита комментариев и последующей блокировки аккаунта. Для этого он может использовать механизм Quota Supervisor следующим образом:

session.set_quota_supervisor(enabled=True, peak_comments_daily=210, peak_comments_hourly=24)	

Если он достигнет пика числа комментариев, он просто пропустит действие написание комментариев постам и снова продолжит размещать комментарии, когда они будут доступны в следующий час или день.

Пример #2

У Алисии есть сценарий запуска бота, который работает без выходных круглосуточно. Однако она хотела бы держать под контролем обращения к серверу, чтобы избежать чрезмерного количества запросов на почасовой основе.

Для того, чтобы бот «засыпал» после достижения пика часовых обращений к серверу, она добавит опцию server_calls_h в параметр sleep_after. Чтобы бот просыпался немного позже реального времени «сна» по достижению пикового значения она использует параметр sleepyhead=True.

session.set_quota_supervisor(enabled=True, peak_server_calls_daily=490, sleep_after=["server_calls_h"], sleepyhead=True)

Бот будет переведен в спящий режим работы после того, как в течение часа число обращений к серверу достигнет значения: 490. После достижения пика ни один запрос к серверу не будет совершен, бот «проснется», когда пройдет час. В тоже время в течение дня вызовы сервера не будут контролироваться вообще.

Пример #3

У Сэма есть сценарий бота, который при работе использует элемент некоторой случайности, и имеет функционал по подписке / отписки аккаунтов пользователей, он тоже хочет сделать работу бота более безопасной и незаметной для алгоритмов обнаружения ботов Instagram.

Бот будет работать на локальном компьютере и Сэм хочет получать всплывающие уведомления 😋 для контроля состояния бота, поэтому для этого будет использоваться параметр notify_me=True.

Сэм хочет, чтобы механизм настроек Quota Supervisor рандомизировал заранее определенные пиковые значения каждый новый час / день и для этого будет использовать параметр stochastic_flow=True.

Он хочет, чтобы бот засыпал после достижения ежечасного пика числа подписок и ежедневного пика отписок и для этого добавляет опции follow_h и unfollows_d в параметр sleep_after.

session.set_quota_supervisor(enabled=True, peak_follows_daily=560, 
                             		   peak_follows_hourly=56, 
                             		   peak_unfollows_hourly=49, 
                             		   peak_unfollows_daily=550, 
                             		   sleep_after=["follows_h", "unfollows_d"], 
                             		   stochastic_flow=True, 
                             		   notify_me=True)

Подсказка. Используйте механизм Quota Supervisor для полного контроля над всеми настройками вашего бота. Либо контролируйте определённые действия в заданных интервалах времени (в течении часа или суток).

Ограничение числа лайков

Рассмотрим следующий пример кода:

session.set_dont_like(['#exactmatch', '[startswith', ']endswith', 'broadmatch'])

Метод set_dont_like задает поиск по хэштегам в описании и комментариях владельца поста, и если там есть один из этих хэштегов, то фото не будет поставлен лайк.

И так в данном примере кода у нас заданы следующие правила для исключения постов из сеанса обработки InstaPy бота:

  • слова, начинающиеся с символа #, будут соответствовать только точным названиям хэштегов (например, #cat соответствует #cat, но не #catpic);
  • слова, начинающиеся с [, будут соответствовать всем хэштегам, начинающимся с заданного далее слова (например, [cat соответствует хэштегам #catpic, #caturday и т. д.);
  • слова, начинающиеся с ], будут соответствовать всем хэштегам, заканчивающимся заданным далее словом (например, ]cat соответствует #mycat, #instacat и т. д.);
  • слова без этих префиксов будут соответствовать хэштегам, содержащим заданное слово, независимо от того, помещено оно в начало, середину или конец хэштега (например, cat будет соответствовать хэштегам #cat, #mycat, #caturday, #rainingcatsanddogs и т. д.).

Игнорирование ограничений

В примере кода ниже бот игнорирует ограничения по одному из заданных слов:

session.set_ignore_if_contains(['glutenfree', 'french', 'tasty'])

Игнорирование пользователей

Полностью игнорируем постановку лайков постам от определенных пользователей:

session.set_ignore_users(['random_user', 'another_username'])

Исключаем друзей

Предотвращаем комментирование ваших хороших друзей и отписывание от них (их постам все равно будут ставиться лайки):

session.set_dont_include(['friend1', 'friend2', 'friend3'])

Обязательные слова Mandatory Words

Метод set_mandatory_words выполняет поиск заданных слов в описании к посту, местоположении и комментариях его владельца, и найденным постам затем будет поставлен лайк, если выполнено условие присутствия обязательных mandatory слов. Список обязательных слов может быть простым списком слов или сложной структурой из списка вложенных списков слов.

session.set_mandatory_words(['#food', '#instafood'])

При использовании простого списка слов правило применения этих слов будет: ИЛИ, то есть если какое-либо из слов из списка присутствует в тексте к описанию поста, то пост будет выбран для обработки по заданному алгоритму.

При использовании списка, в качестве элементов которого заданы списки, условием для списка верхнего уровня является ИЛИ, в списках следующего уровня вложенности для слов используется условие И. Для следующего опять ИЛИ, и так будет чередоваться далее по уровням вложенности.

Например:

# либо "icecave" ИЛИ "ice_cave"
["icecave", "ice_cave"]

# либо "high_mountain" ИЛИ ("high" И "mountain")
["high_mountain", ["high", "mountain"]]

# только ("high" И "tide" together)
[["high", "tide"]]

# только "summer" И ("lake" ИЛИ "occean")
[["summer", ["lake", "occean"]]

Выбор обязательного языка

session.set_mandatory_language(enabled=True, character_set=['LATIN'])
session.set_mandatory_language(enabled=True, character_set=['LATIN', 'CYRILLIC'])

Метод set_mandatory_language ограничивает взаимодействие с пользователями, лайки и подписку на них, если какой-либо символ описания к посту находится за пределами указанного наборов символов (местоположение не включается, а неалфавитные символы игнорируются). Например, если вы выберете LATIN, то любой символ кириллицы пометит пост как неприемлемый для последующей обработки. Во второй строке кода, вы определяете, что учитываться будут посты в описании к которым использовались символы в раскладке LATIN и CYRILLIC, а другие будут помечаются как неприемлемые.

Доступные наборы символов: LATIN, GREEK, CYRILLIC, ARABIC, HEBREW, CJK, HANGUL, HIRAGANA, KATAKANA and THAI.

От активных пользователей не отписываемся

Код ниже предписывает не отписаться от подписчиков, которым понравился один из ваших последних 5 постов:

session.set_dont_unfollow_active_users(enabled=True, posts=5)

Определяем «черный список» компаний Campaign

Эта опция позволяет управлять вашим взаимодействием с кампаниями. Например на этой неделе бот InstaPy будет взаимодействовать, ставить лайки и комментировать подписчиков кампании soccer, при следующем запуске InstaPy бот больше не будет взаимодействовать с пользователями и по сути поместит их в черный список по факту подписки на эту компанию.

В общем, это означает, что как только мы выключим в «черный список» soccer_campaign, InstaPy бот не будет отслеживать людей, с которыми общался по поводу футбола. Это поможет вам настроить целевой таргетинг на людей, ориентирующихся сразу на несколько определенных кампаний.

session.set_blacklist(enabled=True, campaign='soccer_campaign')
session.set_do_comment(True, percentage=50)
session.set_comments(['Neymar is better than CR7', 'Soccer is cool'])
session.like_by_tags(['soccer', 'cr7', 'neymar'], amount=100, media='Photo')

Симуляция

Во время поиска данных симуляция обеспечивает реальный поток действий, запускаемый особым адаптивным алгоритмом.

Чтобы выключить симуляцию или уменьшить частоту выборки информации, используйте опцию set_simulation:

session.set_simulation(enabled=False)
session.set_simulation(enabled=True, percentage=66)

В примере выше мы сначала отключаем симуляцию. А в следующей строчке кода настраиваем желаемую частоту выборки.

Исключение пользователей без изображения профиля, бизнес-учетной записи, биографии по ключевым словам для приватной подписки

Используется для допуска к подписке пользователей по определенным условием.

session.set_skip_users(skip_private=True,
                       private_percentage=100,
                       skip_no_profile_pic=False,
                       no_profile_pic_percentage=100,
                       skip_business=False,
                       skip_non_business=False,
                       business_percentage=100,
                       skip_business_categories=[],
                       dont_skip_business_categories=[],
                       skip_bio_keyword=[],
                       mandatory_bio_keywords=[])

Пропустить приватный аккаунт

Эта опция включена по умолчанию.

session.set_skip_users(skip_private=True,private_percentage=100)

Бот будет пропускать пользователей, у которых есть приватная учетная запись, даже если они подписаны на текущую запущенную учетную запись. Вы можете установить определенный процент пропуска: private_percentage=100 всегда пропускать приватных пользователей, private_percentage=0 никогда не пропускать частных пользователей (это аналогично установке опции skip_private=False).

Пропускать пользователей, у профиля которых нет изображения

session.set_skip_users(skip_private=True,
                       skip_no_profile_pic=True,
                       no_profile_pic_percentage=100)

Бот будет пропускать пользователей, которые еще не загрузили изображение для своего профиля. Вы можете также установить процент пропуска: no_profile_pic_percentage=100 всегда пропускать пользователей без изображения профиля, no_profile_pic_percentage=0 никогда не пропускать пользователей без изображения профиля (это аналогично установке опции skip_no_profile_pic=False).

Пропускать пользователей с бизнес-аккаунтом

session.set_skip_users(skip_private=True,
                       skip_no_profile_pic=True,
                       skip_business=True,
                       business_percentage=100)

Бот будет пропускать всех пользователей, у которых активирован бизнес-аккаунт. Вы можете также можете установить процент пропуска: business_percentage=100 всегда пропускать бизнес-пользователей, business_percentage=0 никогда не пропускать бизнес-пользователей (это аналогично установке опции skip_business=False).

Опция business_percentage работает, только если не указаны опции skip_business_categories или dont_skip_business_categories!

Пропускать только определенных пользователей, у которых есть бизнес-аккаунт

session.set_skip_users(skip_private=True,
                       skip_no_profile_pic=True,
                       skip_business=True,
                       skip_business_categories=['Creators & Celebrities'])

При этом будут пропущены все бизнес-аккаунты из категории, указанной в данном списке, также в параметр skip_business_categories вы можете передать более одной категории.

Пропустить все бизнес-аккаунты, кроме присутствующих в списке

session.set_skip_users(skip_private=True,
                       skip_no_profile_pic=True,
                       skip_business=True,
                       dont_skip_business_categories=['Creators & Celebrities'])

При этом будут пропущены все бизнес-аккаунты, кроме тех, которые принадлежат одной из категорий, из списка переданного в параметр dont_skip_business_categorie. Если используются обе опции dont_skip_business_categories, и skip_business_categories, то InstaPy бот будет пропускать только бизнес-аккаунты из списка, указанного в параметре skip_business_categories.

Список всех доступных бизнес-категорий можно найти по ссылке.

Пропустить все некоммерческие и коммерческие учетные записи, кроме указанных в списке

session.set_skip_users(skip_private=True,
                       skip_no_profile_pic=True,
                       skip_business=True,
                       skip_non_business=True,
                       dont_skip_business_categories=['Creators & Celebrities'])

При этом будут пропущены все некоммерческие и бизнес-аккаунты, кроме принадлежащих одной из категорий из списка переданного в параметр dont_skip_business_categories.

Пропустить аккаунты на основе ключевых слов из биографии

session.set_skip_users(skip_bio_keyword=["lifestyle"],
                       mandatory_bio_keywords=["art", "photography"])

Использование этой опции позволяет пропустить пользователей, которые придерживаются lifestyle, и пользователей, у которых отсутствуют слова art или photography в биографии или имени пользователя. См. Раздел выше Обязательные слова Mandatory Words для получения подробной информации о том, как определять более сложные условия логики обязательных слов.

Ставим лайки посту на основе числа уже поставленных лайков

Эта возможность используется для проверки количества уже поставленных посту лайков, и если оно либо превышает максимальное установленное значение, либо менее минимального установленного значения, то бот не поставит ему лайк.

session.set_delimit_liking(enabled=True, max_likes=1005, min_likes=20)

Используйте следующие значения параметр enabled=True, чтобы активировать опцию, и enabled=False, чтобы отключить ее. Параметр max_likes определяет для сравнения максимальное количество лайков, а min_likes минимальное.

Вы можете использовать как максимальные, так и минимальные значения количества лайков или же одно из них по своему усмотрению. Для этого просто поместите значение None в то, которое вы не хотите использовать для проверки. Например:

session.set_delimit_liking(enabled=True, max_likes=242, min_likes=None)

В соответствии с конфигурацией выше, бот не будет проверять количество составленных лайков по минимальному предельному значению.

Еще один пример:

session.set_delimit_liking(enabled=True, max_likes=500, min_likes=7)

Теперь, если у поста больше лайков, чем максимальное значение 500, то этому посту бот не поставит лайк, и аналогично, если у этого поста меньше лайков, чем минимальное значение 7, то ему так же не будет поставлен лайк.

Комментирование поста с учетом числа комментариев к нему

Эта опция используется для проверки количества комментариев к посту, и если оно превышает установленное максимальное значение ИЛИ не менее минимального заданного значения, то бот не будет его комментировать.

session.set_delimit_commenting(enabled=True, max_comments=32, min_comments=0)

Используйте значение enabled=True, чтобы активировать, и enabled=False, чтобы деактивировать эту опцию. max_comments это максимальное количество комментариев у поста, а min_comments минимальное количество комментариев для сравнения.

Вы можете использовать как максимальное, так и минимальное значение количества комментариев или одно из них по своему усмотрению. Для того чтобы использовать одно из значений просто пропустите другое значение или установите для него значение None. Например,

session.set_delimit_commenting(enabled=True, min_comments=4)
session.set_delimit_commenting(enabled=True, max_comments=None, min_comments=4)

Для конфигурации выше бот не будет проверять количество существующих комментариев на максимальное значение.

Еще пример:

session.set_delimit_commenting(enabled=True, max_comments=70, min_comments=5)

Теперь, если у поста больше комментариев, чем максимальное значение 70, то бот не будет комментировать этот пост, аналогично, если у этого поста меньше комментариев, чем минимальное значение 5, то бот не будет также его комментировать.

Комментирование на основе наличия обязательных слов в описании поста или его первом комментарии

Эта опция используется для проверки перед комментированием описания поста и первого комментария к нему (так как некоторые пользователи помещают теги только в комментарии вместо описания сообщения) на наличие обязательных слов mandatory words. Если ни одно из обязательных слов не присутствует, то пост не комментируется.

Эта функция будет полезна, если вы хотите комментировать только посты по определенным тегам.

session.set_delimit_commenting(enabled=True, comments_mandatory_words=['cat', 'dog'])

В соответствии с этой опцией бот будет комментировать только посты, в описании или первом комментарии которых упоминается кошка cat или собака dog. Вы также можете задавать наборы слов. См. раздел «Комментарии» выше, чтобы узнать, как это делается.

Взаимодействия на основе отношения количества подписчиков и / или числа подписок у них

Эта опция используется для оценки числа подписчиков и подписок пользователя, и если их количество либо превышает заданное число, либо менее некоторого числа, или же их соотношение не позволяет достигнуть желаемой эффективности работы бота, то дальнейшее взаимодействие с пользователем не происходит.

session.set_relationship_bounds(enabled=True,
                 potency_ratio=1.34,
                  delimit_by_numbers=True,
                  max_followers=8500,
                  max_following=4490,
                  min_followers=100,
                  min_following=56,
                  min_posts=10,
                  max_posts=1000)

Используйте значение параметра enabled=True, чтобы активировать эту возможность, и enabled=False, чтобы отключить ее. Для активации возможности определения максимальных и минимальных значений числа подписчиков используется опция delimit_by_numbers.

Параметр potency_ratio (эффективное соотношение) принимает значения в 2 формах в соответствии с выбранным стилем: положительное и отрицательное значения.

Передавая в параметр potency_ratio положительные значения, можно использовать бота для маршрутизации взаимодействий только с потенциальными (реальными) пользователя, количество подписчиков, у которых больше, чем число его подписок, например, potency_ratio = 1.39.

Значение отношения рotency_ratio находится с помощью следующей формулы: potency_ratio == общее число подписчиков / количество его подписок.

Например, у некоторого пользователя 5000 подписчиков и 4000 подписок, вы устанавливаете potency_ratio = 1,35. Теперь бот не будет взаимодействовать с этим пользователем, потому что соотношение взаимодействия пользователя с другими составляет 5000/4000 == 1,25, а число 1,25 меньше желаемого отношения potency_ratio = 1,35.

Передавая в параметр potency_ratio отрицательные значениями, можно использовать его для маршрутизации взаимодействий только с пользователями, которые имеют количество подписок больше, чем количество подписчиков (например, potency_ratio = -1,42). Желаемое значение potency_ratio с помощью следующей формулы: potency_ratio == количество подписок / количество подписчиков.

Например, у некоторого пользователя 2000 подписчиков и 3000 подписок, далее вы устанавливаете potency_ratio = -1,7. Теперь бот не будет взаимодействовать с этим пользователем, потому что соотношение взаимодействия пользователя с другими пользователями составляет 3000/2000 == 1,5, а 1,5 меньше желаемого соотношения potency_ratio = 1,7 (обратите внимание, что отрицательный знак используется только для определения вашего способа определения соотношения, и не более).

Доступны для использования 3 комбинации, рассмотренных выше параметров:

  • Вы можете использовать параметр potency_ratio или нет (например, potency_ratio=None, delimit_by_numbers=True) и поведение бота будет определяться только вашими предопределенными максимальными и минимальными значениями, независимо от potency_ratio
session.set_relationship_bounds(enabled=True, potency_ratio=None, delimit_by_numbers=True, max_followers=22668, max_following=10200, min_followers=400, min_following=240)
  • Вы можете использовать только параметр potency_ratio (например, potency_ratio=-1,5, delimit_by_numbers=False) и бот будет принимать решение на основе значения potency_ratio независимо от предварительно определенных максимальных и минимальных значений. Очевидно, как только параметр delimit_by_numbers получает значение False, максимальные и минимальные значения также не будут приниматься во внимание
session.set_relationship_bounds(enabled=True, potency_ratio=-1.5, delimit_by_numbers=False, max_followers=400701, max_following=90004, min_followers=963, min_following=2310)
  • Вы можете использовать вместе с параметром potency_ratio предварительно определенные максимальные и минимальные значения (например, potency_ratio=2.35, delimit_by_numbers=True). И решение бота будет зависеть от значения параметра potency_ratio и заранее определенных максимальных и минимальных значений.
session.set_relationship_bounds(enabled=True, potency_ratio=-1.44, delimit_by_numbers=True, max_followers=52639, max_following=None, min_followers=None, min_following=2240)

Все 4 значения максимальные и минимальные значения также могут использоваться совместно. Например, вы можете захотеть ограничить только параметры max_followers и min_following и задать их значения следующим образом: max_followers=52639, max_following=None, min_followers=None, min_following=2240.

session.set_relationship_bounds(enabled=True, potency_ratio=-1.44, delimit_by_numbers=True, max_followers=52639, max_following=None, min_followers=None, min_following=2240)

Взаимодействие c пользователями на основе числа опубликованных ими постов

Эта опция используется для оценки количества постов, опубликованных пользователем, и он будет принят во внимание для дальнейшего взаимодействия, если их число выходит за рамки заданных границ.

session.set_relationship_bounds(min_posts=10, max_posts=1000)

Пользователи, у которых есть более 1000 постов или менее 10, будут пропущены.

Для корректной работы необходимо проверить, чтобы min_posts < max_posts.

Вы также можете установить значение только одного параметра:

session.set_relationship_bounds(max_posts=1000)

Бот будет пропускать только пользователей, у которых в ленте более 1000 постов.

Настраиваем параметры задержки после определенных действий actions

После выполнения каждого действия actions, например, комментирования, подписки, отмены подписки или публикации истории, реализована возможность настройки продолжительности задержки (сна), чтобы обеспечить плавный (схожий с действиями реального пользователя) поток активности. Таким образом, вы можете установить более индивидуальную настройку продолжительности задержки (сна) непосредственно для каждого типа действия, используя метод set_action_delays.

session.set_action_delays(enabled=True,
                           like=3,
                           comment=5,
                           follow=4.17,
                           unfollow=28,
                           story=10)

Теперь бот будет «спать» 3 секунды после добавления постановки лайка, 5 секунд после каждого отдельного комментирования и аналогично для других действий actions.

Например, следующим образом вы также можете настроить задержку «сна» только после постановки лайка:

session.set_action_delays(enabled=True, like=3)

Хотите настроить время задержки более похожее на действия реального пользователя используйте параметры random_range_from и random_range_to. Для активации этой возможности просто используйте параметр randomize, и бот будет генерировать случайные задержки в заданном диапазоне времени, например,

session.set_action_delays(enabled=True, like=5.2, randomize=True, random_range_from=70, random_range_to=140)

Таким образом у бота каждый раз после постановки лайка будет формироваться случайная временная задержка от 3,64 (70% от 5,2) до 7,28 (140% от 5,2) секунд.

Следующим способом вы можете определить только максимальный диапазон: random_range_from=None, random_range_to=200. Тогда минимальный диапазон автоматически будет принят как 100%, то есть иметь такую же временную задержку. А случайные задержки сон будут генерироваться в диапазоне от 5,2 до 10,4 секунд.

Если вы указывается значение только для минимальный границы диапазона random_range_from=70, random_range_to=None, то максимальный диапазон автоматически будет принят равным 100%. И случайные задержки соответственно будут формироваться от 3,64 до 5,2 секунды.

Если вы зададите значение None для обеих границ диапазона min и max: random_range_from=None, random_range_to=None, то рандомизации процесса не произойдет, и задержка между действиями всегда будет фиксированной: 5,2 секунды.

Если вы ошибочно указали значение минимального диапазона вместо максимального: random_range_from=100, random_range_to=70? Нет проблем. Бот автоматически примет меньшее число за минимум, а большее за максимум.

Убедитесь, что вы используете значения больше 0 для процентного соотношения временных задержек random_rage. Например, random_range_from=-10, random_range_to=140 недопустимый диапазон, и рандомизация задержек не будет производиться.

Вы также использовать числа с плавающей запятой для значений в процентах! Настройки со следующими параметрами: random_range_from = 70.7, random_range_to = 200.45 будут отлично работать.

Примечание. Для каждого действия существует минимальная задержка по умолчанию, и если вы введете меньшее время задержки, чем значение по умолчанию, то все равно будет выбрано значение по умолчанию. Вы можете отключить это поведение с помощью параметра safety_match.

session.set_action_delays(enabled=True, like=0.15, safety_match=False)

Этот параметр был введен из соображений безопасности. Очень важен сон в течение определенного времени после выполнения некоторых действий actions, чтобы избежать возможных временных блокировок. Например, ~10 секунд после отмены подписки.

Целевые списки

Эта возможность используется для использования текстовых файлов, содержащих списки пользователей, хэштеги, комментарии и т. д. для последующего взаимодействия с ними.

Например:

# Ставим лайки на основе хэштегов
hashtags = session.target_list("C:\\Users\\......\\hashtags.txt")
session.like_by_tags(hashtags, amount=10)

# Подписываемся на подписчиков каждого пользователя из списка
users = session.target_list("C:\\Users\\......\\users.txt")
session.follow_user_followers(users, amount=10, randomize=False)

Обратите внимание, что ваш текстовый файл должен выглядеть следующим образом:

hashtag1
hashtag2
hashtag3

или так:

user1
user2
user3

Ниже перечислены методы, которые вы можете использовать совместно с методом target_list:

story_by_user, story_by_tag, like_by_tags, follow_by_tags, follow_user_followers, follow_user_following, follow_likers, follow_commenters, follow_by_list, set_skip_users, set_ignore_users, set_dont_include, interact_by_users, interact_by_users_tagged_posts, interact_user_followers, interact_user_following, interact_by_comments, set_comments, set_comment_replies, set_mandatory_words, unfollow_users.

Содержание.

Оставить комментарий