Suite de bots de Twitter en Python con Tweepy

Por Mauricio Sevilla @configuroweb

El proceso se explica a cabalidad en el vídeo a continuación

Suite de bots de Twitter en Python con Tweepy

Básicamente en este post encontrarás scripts de python que te permitirán:

Cabe aclarar que para que estos script funcionen debes crear tu aplicación en Twitter y configurar con tus credenciales un documento de extensión py.

En este blog post enlacé con los 4 primeros script al documento credenciales.py en los dos últimos se deben ingresar las credenciales en cada documento, puedes ver los detalles de estos dos últimos script en el siguiente vídeo:

Aprende cómo dar like automático y retweet por hashtag

En una publicación previa bastante popular explico como aumentar tus seguidores en Twitter utilizando dos script en Javascript.

En este caso no se diligencia ningún permiso, se accede a la página de quienes vas a seguir se ejecuta el script y ya.

Twitter ha ido cambiando y por estos días es necesario instalar una extensión de chrome para correr la versión anterior.

Esta opción estará activa hasta el 1 de Junio del presente año y por esto me vi en la necesidad de actualizar los procesos para que se pueda seguir optimizando tu cuenta de Twitter ahora con python y con la gran librería de Tweepy.

Tweepy es una grandiosa librería. La más popular de Internet, para programar bots con python para Twitter.

Previo a la configuración es necesario instalar Python y Tweepy. En el vídeo a continuación explico el proceso a cabalidad.

Entrando en materia para poner a punto la suite de bots de Twitter en Python con Tweepy que planteo en el vídeo.

Primero es necesario instalar Python y Tweepy para luego gestionar la conexión con Twitter desde tu Bot. En adición te recomiendo la instalación de Visual Studio Code, que es el editor de código que uso en todos mis post de Social Media, Growth Hacking y Desarrollo.

Proceso de conexión con la API de Twitter

Una API se puede resumir como los términos en los que te vas a comunicar con Twitter.

Básicamente lo que se va a hacer es crear una aplicación en Twitter.

Esto no es más que crear cuatro llaves de acceso para autenticarte satisfactoriamente desde tu bot de python en tu ordenador hasta la aplicación de Twitter que te da el acceso a la API.

Creación de la Aplicación de Twitter

Lo primero es acceder a la página de desarrolladores de twitter en la siguiente URL

https://developer.twitter.com/en/apps

Debes obtener la consumer_key, la consumer_secret, el access_token y el access_token_secret esa información la diligencias en el documento a continuación.

Creación de script de credenciales sacadas de tu aplicación de Twitter

Este documento créalo con el nombre credenciales.py y rellena con tu información el script a continuación.

credenciales = dict( screen_name = 'tu usuario sin arroba', consumer_key = '', consumer_secret = '', access_token = '', access_token_secret = '', )

Previamente hice una publicación en la que mostraba como dar like automático y retweet desde python con tweepy. En el vídeo relacionado, por ser más específico en su enfoque, que en este blog post, me dediqué a mostrar comando por comando como hacer el script y de hecho construí el script en el vídeo.

Este documento, credenciales.py lo vamos a estar llamando desde los diferentes script de python para autenticarnos con Twitter en cada bot.

Suite de bots python para Twitter

A continuación les muestro los bots diseñados para la suite de este blog post:

Dejar de seguir a quien no te sigue con pregunta de sí o no en consola

import tweepy from credenciales import credenciales import time SCREEN_NAME = credenciales['screen_name'] CONSUMER_KEY = credenciales['consumer_key'] CONSUMER_SECRET = credenciales['consumer_secret'] ACCESS_TOKEN = credenciales['access_token'] ACCESS_TOKEN_SECRET = credenciales['access_token_secret'] auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET) auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET) api = tweepy.API(auth) followers = api.followers_ids(SCREEN_NAME) friends = api.friends_ids(SCREEN_NAME) for f in friends: if f not in followers: api.destroy_friendship(f) print ("He dejado de seguir a {0}".format(api.get_user(f).screen_name)) time.sleep(50)

Dejar de seguir a quien no te sigue sin pregunta

import tweepy from credenciales import credenciales import time SCREEN_NAME = credenciales['screen_name'] CONSUMER_KEY = credenciales['consumer_key'] CONSUMER_SECRET = credenciales['consumer_secret'] ACCESS_TOKEN = credenciales['access_token'] ACCESS_TOKEN_SECRET = credenciales['access_token_secret'] auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET) auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET) api = tweepy.API(auth) followers = api.followers_ids(SCREEN_NAME) friends = api.friends_ids(SCREEN_NAME) for f in friends: if f not in followers: api.destroy_friendship(f) print ("He dejado de seguir a {0}".format(api.get_user(f).screen_name)) time.sleep(50) 

Seguir a quien te sigue

import tweepy from credenciales import credenciales import time CONSUMER_KEY = credenciales['consumer_key'] CONSUMER_SECRET = credenciales['consumer_secret'] ACCESS_TOKEN = credenciales['access_token'] ACCESS_TOKEN_SECRET = credenciales['access_token_secret'] auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET) auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET) api = tweepy.API(auth) for follower in tweepy.Cursor(api.followers).items(): follower.follow() print ("acabo de seguir a ") print (follower.screen_name) time.sleep(50) 

Enviar tweet grupal a varias cuentas

import tweepy, sys, time from random import randint from credenciales import credenciales CONSUMER_KEY = credenciales['consumer_key'] CONSUMER_SECRET = credenciales['consumer_secret'] ACCESS_TOKEN = credenciales['access_token'] ACCESS_TOKEN_SECRET = credenciales['access_token_secret'] auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET) auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET) api = tweepy.API(auth) usuarios = sys.argv[1] f = open(usuarios, "r") h = f.readlines() f.close() for i in h: i = i.rstrip() m = i + " " + sys.argv[2] s = api.update_status(m) nap = randint(1, 60) time.sleep(nap)

Además de este script debes crear una archivo con extensión txt de nombre usuarios.txt en el que pondrás las cuentas, una debajo de la otra con el arroba, como se ve a continación

@configuroweb @w3c @ProgrammableWeb @3Scale @BankInnovation

El script se debe ejecutar con la siguiente sintaxis, claro está en caso de que le hayas puesto el nombre de msjusuarios.py al script de python

python msjusuarios.py usuarios.txt "tu mensaje"

Dar retweet automático por hashtag

Este script lo hice previamente en una publicación anterior y por eso no se conecta con el script de credenciales los debes poner en el mismo código.

import tweepy import time auth = tweepy.OAuthHandler('','') auth.set_access_token('','') api = tweepy.API(auth,wait_on_rate_limit=True,wait_on_rate_limit_notify=True) user = api.me() search = 'Marketing' lang = 'es' nrTweets = 15 for tweet in tweepy.Cursor(api.search,search).items(nrTweets): try: print('He dado Retweet') tweet.retweet() time.sleep(500) except tweepy.TweepError as e: print(e.reason) except StopIteration: break

Dar like automático por hashtag

import tweepy import time auth = tweepy.OAuthHandler('','') auth.set_access_token('','') api = tweepy.API(auth,wait_on_rate_limit=True,wait_on_rate_limit_notify=True) user = api.me() search = 'Marketing' lang = 'es' nrTweets = 15 for tweet in tweepy.Cursor(api.search,search).items(nrTweets): try: print('He dado Like') tweet.favorite() time.sleep(50) except tweepy.TweepError as e: print(e.reason) except StopIteration: break

Espero te sirva esta suite, cualquier duda quedo al pendiente.