Utilidad de linea de comandos para filtrar y descargar twits en formato JSON
Funciona en Linux y en Windows a través de cygwin
- python 3X
- pip
- pythonpy (opcional): para ver como texto los tuits descargados
Para instalar las librerias necesarias pip install -r requirements.txt Ir a dev.twitter.com/apps y crear una aplicación llenando los datos necesarios, luego copiar los datos de autenticación a auth_twitter.conf La versión oficial de tweepy no funciona con python3, asi que por el momento es recomendable usar este port https://github.com/judy2k/tweepy
Filtrar los tuits de la conferencia RubyConf Argentina:
./filtratwit.py "#rubyconfar" "@rubyconfar"
Filtrar los tuits de con el hashtag #angularjs que sean en español, el filtrado se hace en el lado del cliente
./filtratwit.py "#angularjs" --lang=es
Instalar la utilidad [pythonpy] (https://github.com/Russell91/pythonpy) que se usa con el comando py Para revisar los resultados de proceso se pueden usar pipes y comandos estandar de UNIX
tail -n20 RubyConfAR-20141024-1601.json | head -n-1 | formatuit
O para monitoreo constante
watch -n5 "tail -n20 RubyConfAR-20141024-1601.json | head -n-1 | formatuit"
Para que funcione este ejemplo es necesario quitar los comentarios, si aún no funciona quitar los backslashes. Este ejemplo se implemento en el archivo top_hashtags.sh
cat rubyconfar-20141024-2335.json | \
py --ji -x "x['text']" | \ # la opcion --ji quiere decir que interprete la entrada como JSON
py -x "x if '#' in x else None" | \ # Si no encuentra hashtags en el texto ignorar la linea
py -x "'\n'.join([j.lower() for j in x.split() if j.startswith('#')])" | \ #Extraer los hashtags y separarlos por cambios de linea
py -x "''.join(ch for ch in x if ch.isalnum())" | \ # Limpiar los hashtags si caracteres no alfabeticos contiguos
sort | uniq -c | sort -nr
-
top_hashtags.sh: Imprime los hashtags más usados junto con el número de veces que se uso cada uno, recibe como argumento la ruta al archivo que contiene un twitt/JSON por línea.
-
top_emoticons.sh: Imprime el top 10 de los emoticons más usados, recibe como argumento la ruta al archivo que contiene un twitt/JSON por línea.
-
most_retweeted.sh: Imprime el top 10 de los twits mas retuiteados, recibe un argumento que es la ruta al archivo que contiene los tuits.
-
formatuit: la idea de esta utilidad es pasarle un pipe de twits para que los imprima en un formato legible.
-
emoji_names: imprime los emojis que encuentra en cada twit, si se le pasa el parametro -k conserva el texto original, se le puede pasar la opción -s para especificarle un separador distinto a la coma ','