Como habréis podido ver en Twitter y si no os lo explico ahora, hoy iba a mirar un poco [mi cliente de Twitter] del que os hable hace ya unos días. Pero, ya que fui capaz de [obtener valores a través de Google Finance y Python], me ha hecho gracia montarme un programa que hiciera un tweet por cada valor del IBEX 35 y lo repitiera cada n segundos. Si, podría haber hecho que cuando me detectara un cambio lo anunciara, pero no hubiera sido tan divertido como hacer enfadar a Twitter xD.
Buscando la lista del Ibex35 por que de memoria no me las se aún y con un poco de ayuda de while y las listas he podido hacer un prototipo que me devolviera por la pantalla los valores como podéis ver. Por lo que solo he tenido que fusionar los dos scripts y hacerme otra cuenta para los Key de acceso y tokens (como es un script para una cuenta concreta el uso de mis tokens es necesario para no comerme la autentificación a través de pin) por lo que ha nacido el siguiente código.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import urllib, re, os, time
import tweepy
def valoracion(busquedaGoogle):
url = "http://www.google.com/finance?&q="
busqueda = urllib.urlopen(url+busquedaGoogle).read()
datos = re.search('id="ref_(.*?)">(.*?)<',busqueda)
if datos:
t = time.localtime()
tiempo =[t.tm_year,t.tm_mon,t.tm_mday,t.tm_hour, t.tm_min,t.tm_sec]
t1= busquedaGoogle +" --> "+ datos.group(2)+" <-- "+ str(tiempo)
tweet(t1)
else:
out = "No he podido encontrar nada con " + busquedaGoogle
tweet(out)
def tweet(contenido):
CONSUMER_KEY=""
CONSUMER_SECRET=""
ACCESS_KEY=""
ACCESS_SECRET=""
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_KEY, ACCESS_SECRET)
api = tweepy.API(auth)
api.update_status(contenido)
if __name__ == "__main__":
Lista35= ["BME:ABG.P","BME:ABE","BME:ANA","BME:ACS","BME:AMS","AMS:MT","BME:POP","BME:SAB","BME:BKIA","BME:BKT","BME:BBVA","BME:BME","BME:CABK","BME:DIA","BME:ENG","BME:FCC","BME:FER","BME:GAM","BME:GAS","BME:GRF","BME:IAG","BME:IBE","BME:ITX","BME:IDR","BME:JAZ","BME:MAP","BME:TL5","BME:OHL","BME:REE","BME:REP","BME:SCYR","BME:SAN","BME:TRE","BME:TEF","BME:VIS"]
while True:
for item in Lista35:
valoracion(item)
Y la siguiente cuenta de Twitter:
¡Funciona otra veeeeez! #Ibex35 #ibex me he creado un tweeter y todo xD https://t.co/OyeBaosECu xDD ^^ #itsfunny pic.twitter.com/eOBTjodRWA
— StateX (@State_X) julio 7, 2014
La cual ha sido pillada por exceso de tweets:
xDD https://t.co/OyeBaosECu pillado a los 304 Tweets xD 1440 min / 304 tweets = 1 tweet cada 4,736 min Mañana juego con esto xD #Ibex35
— StateX (@State_X) julio 7, 2014
La verdad es que me ha encantado ponerme manos en la masa con esto y no me arrepiento de que hayan suspendido la cuenta. Ahora toca pensar como poder hacer esto de una manera menos agresiva. Por cierto, os dejo la foto del error que te salta cuando excedes el limite de tweets.
Sed Buenos ;)
Para evitar todo ello estimado Albertito podias meterte en un do while o hacer algo de tiempo cada 15 segunos o 30 segunos lanzar xDDD algo de esto me hablo RizelTane, que se necesita de un timepo para continuar porque no le preguntes a ella y te dira ;).
ResponderEliminarRegards,
Snifer