Рубріки: Решения

TwitterFollowBot: Бот на Python для автоматизации действий в Twitter

Богдан Мирченко

TwitterFollowBot — бот на Python, который автоматизирует несколько действий в Twitter, например, отслеживание пользователей и добавление твитов в избранное. Проект распространяется под лицензией GPL. 

Установка

TwitterFollowBot можно установить с помощью менеджера пакетов pip

pip install TwitterFollowBot

Затем необходимо установить библиотеку python-twitter:

pip install twitter

Также потребуется создание учетной записи приложение на сайте. Затем: 

  • Войдите в учетную запись Twitter;
  • Создайте новую запись приложения;
  • В настройках учетной записи приложения разрешите чтение и запись;
  • Создайте токен OAuth с разрешением на чтение и запись.

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

Настройка бота

Перед запуском бота его нужно настроить, чтобы он мог подключаться к Twitter API. Для этого создайте файл config.txt и укажите следующее: 

OAUTH_TOKEN:
OAUTH_SECRET:
CONSUMER_KEY:
CONSUMER_SECRET:
TWITTER_HANDLE:
ALREADY_FOLLOWED_FILE:already-followed.txt
FOLLOWERS_FILE:followers.txt
FOLLOWS_FILE:following.txt
USERS_KEEP_FOLLOWING:
USERS_KEEP_UNMUTED:
USERS_KEEP_MUTED:
FOLLOW_BACKOFF_MIN_SECONDS:10
FOLLOW_BACKOFF_MAX_SECONDS:60

OAUTH_TOKEN, OAUTH_SECRET, CONSUMER_KEY и CONSUMER_SECRET — это ваши ключи API, которые вы получили при создании учетной записи приложения. TWITTER_HANDLE — ваше имя в Twitter с учетом регистра.

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

Добавьте запятые между идентификаторами пользователей Twitter в записи USERS_KEEP, чтобы: 

  • USERS_KEEP_FOLLOWING: продолжать подписываться на пользователей, даже если они не подписываются на вас.
  • USERS_KEEP_UNMUTED: продолжать получать уведомления от пользователей, когда они пишут твиты.
  • USERS_KEEP_MUTED: не получать уведомления, когда пользователи пишут твиты.

Например: 

...
FOLLOWS_FILE:following.txt
USERS_KEEP_FOLLOWING:1234,1235,1236
USERS_KEEP_UNMUTED:
...

Узнать идентификатор пользователя можно здесь. 

Пример бота

from TwitterFollowBot import TwitterBot

my_bot = TwitterBot()

По умолчанию бот будет искать файл конфигурации с именем config.txt в текущем каталоге.

Если захотите использовать другой файл конфигурации, передайте его боту следующим образом:

from TwitterFollowBot import TwitterBot

my_bot = TwitterBot("my-other-bot-config.txt")

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

Локальная синхронизация подписчиков в Twitter

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

from TwitterFollowBot import TwitterBot

my_bot = TwitterBot()
my_bot.sync_follows()

Бот создаст файлы кеша там, где вы указали в файле конфигурации. 

Примечание: Не удаляйте файлы кеша (по умолчанию followers.txt, follow.txt и already-followed.txt), если не хотите запускать бота заново со свежим кешем. 

Автоматизация действий

Бот имеет несколько функций для программного взаимодействия с Twitter. Среди них: 

  • Автоматическая подписка на пользователей, которые пишут в Twitter что-то определенное (по фразе):
from TwitterFollowBot import TwitterBot

my_bot = TwitterBot()
my_bot.auto_follow("phrase")

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

from TwitterFollowBot import TwitterBot

my_bot = TwitterBot()
my_bot.auto_follow("#hashtag")

По умолчанию бот просматривает 100 последних твитов. С помощью параметра count можно изменить это число:

from TwitterFollowBot import TwitterBot

my_bot = TwitterBot()
my_bot.auto_follow("phrase", count=1000)
  • Автоматическая подписка на любых пользователей, которые подписались на вас:
from TwitterFollowBot import TwitterBot

my_bot = TwitterBot()
my_bot.auto_follow_followers()
  • Автоматическая подписка на всех пользователей, которые подписались на указанного пользователя:
from TwitterFollowBot import TwitterBot

my_bot = TwitterBot() 
my_bot.auto_follow_followers_of_user("jack", count=1000)
  • Автоматическое добавление в избранное любых твитов с определенной фразой:
from TwitterFollowBot import TwitterBot

my_bot = TwitterBot()
my_bot.auto_fav("phrase", count=1000)
  • Автоматический ретвит твитов, содержащих определенную фразу:
from TwitterFollowBot import TwitterBot

my_bot = TwitterBot()
my_bot.auto_rt("phrase", count=1000)
  • Автоматическая отписка от пользователей, которые не подписались на вас в ответ:
from TwitterFollowBot import TwitterBot

my_bot = TwitterBot()
my_bot.auto_unfollow_nonfollowers()

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

  • Автоматическая отписка всех пользователей от вас:
from TwitterFollowBot import TwitterBot

my_bot = TwitterBot()
my_bot.auto_unfollow_all_followers()
  • Автоматическое отключение звуковых оповещений от всех пользователей, на которых вы подписаны:
from TwitterFollowBot import TwitterBot

my_bot = TwitterBot()
my_bot.auto_mute_following()

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

  • Автоматическое включение всех, кого вы отключили:
from TwitterFollowBot import TwitterBot

my_bot = TwitterBot()
my_bot.auto_unmute()

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

  • Автоматическая публикация твита:
from TwitterFollowBot import TwitterBot

my_bot = TwitterBot()
my_bot.send_tweet("Hello world!")
  • Автоматическое добавление пользователей, которые пишут что-то в Twitter, в один из ваших списков:
from TwitterFollowBot import TwitterBot

my_bot = TwitterBot()
my_bot.auto_add_to_list("#TwitterBot", "twitterbot-list", count=10)

В примере выше бот добавляет в список twitterbot-list пользователей, которые пишут хештег TwitterBot. Максимальное количество пользователей в списке — 5000. 

Автор предупреждает, что последнее время Twitter начал предпринимать жесткие меры против пользователей, которые используют боты, поэтому он не несет ответственность то, что вы будете делать с этим ботом. Злоупотребление TwitterFollowBot может привести к блокировке Twitter, поэтому предварительно ознакомьтесь с информацией о правильном использовании Twitter API. 

Ранее мы писали о том, как создать бот-анекдот в Twitter с помощью Python и Zapier.

Останні статті

Обучение Power BI – какие онлайн курсы аналитики выбрать

Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…

13.01.2024

Work.ua назвал самые конкурентные вакансии в IТ за 2023 год

В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…

08.12.2023

Украинская IT-рекрутерка создала бесплатный трекер поиска работы

Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…

07.12.2023

Mate academy отправит работников в 10-дневный оплачиваемый отпуск

Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…

07.12.2023

Переписки, фото, история браузера: киевский программист зарабатывал на шпионаже

Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…

07.12.2023

Как вырасти до сеньйора? Девелопер создал популярную подборку на Github

IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…

07.12.2023