Jugando con La API de Twitter [Creando APP]
Saludos amigos Lectores, hoy vamos a comenzar con esta Serie Jugando con las API de las Redes Sociales y para hacerlo quiero dar algunos conceptos de wikipedia que necesitamos conocer...
Twitter es un servicio de microblogging
Web Scraping: es una técnica utilizada mediante programas de software para extraer información de sitios web. Usualmente, estos programas simulan la navegación de un humano en la World Wide Web ya sea utilizando el protocolo HTTP manualmente, o incrustando un navegador en una aplicación.
API: La interfaz de programación de aplicaciones, abreviada como API (del inglés: Application Programming Interface), es el conjunto de sub-rutinas, funciones y procedimientos (o métodos, en la programación orientada a objetos) que ofrece cierta biblioteca para ser utilizado por otro software como una capa de abstracción.
Como esta es la primera entrada y trata sobre Twitter nos basta con conocer solo estos conceptos, ahora la pregunta es si queremos jugar al Futbol necesitamos un Balón de Futbol, si necesitamos llamar por teléfono necesitamos un teléfono, no es lo único que vamos a necesitar pero si lo mas importante...
Bien, que pretendemos aprender con esto de jugar con la api publica de una red social, la respuesta podría ser simple, necesitamos extraer datos de las redes sociales y ya que los parámetros de programación de estas son buenos la información esta bien organizada y podemos utiliza las rutinas, funciones y métodos de la propia red social para obtener toda la información que ellos pueden darnos, el caso de poder no depende de poder o querer es simplemente lo que tengan almacenado.
Entonces si queremos interactuar con la API de Twitter necesitamos primero tener una cuenta en Twitter(no vamos a hablar de como crearla), ademas necesitamos crear una APP(tranquilo no es tan Difícil no huyas :D) simplemente entra en este link https://apps.twitter.com/ y sigue los pasos:
Paso 1 Logueate con tu cuenta de Twitter si no tienes una puedes crearla aqui mismo
Paso 2 Darle clic en Nueva aplicación como se muestra en la figura:
Paso 3 Debemos colocar los datos que nos piden con un * son obligatorios, el sitio web puede ser cualquier https://www.cualquiera.com
Paso 4 una ves terminado de ingresar los datos y de aceptar los términos debe enviar la información con el botón de abajo, a continuación estarás en una pantalla como esta:
Paso 5, hasta aquí todo bien, ahora necesitamos 4 datos para poder conectar nuestro programa a la api de twitter, los primeros dos están esperando que los copies y los guardes los usaremos mas tarde, debes ir a Keys and Acces Tokens.... explicación breve, no es buena idea dejar tu usuario y contraseña de twitter o cualquier sitio en un programa alguien podría verlos es por esto y por conveniencia de todos que twitter a implentado el protocolo OAUTH que usa unas especies de llaves publicas y privadas para acceder a la API sin necesidad de tu contraseña de twitter.... Ahora copia los datos A y B tal como se muestran en la figura, para protegerme he marcado con rojo mis datos, copia los tuyos en un archivo mas adelante los vamos a necesitar, seria conveniente que los identifiques:
Paso 6 ahora nos encontramos con que los tokens no los tenemos debemos bajar al final aquí mismo en Keys and Acces Tokens y darle clic al botón de Generar tokens
Y estaremos en una pantalla así:
Ya tenemos los tokens toca bajar copiarlos y guardarlos en el mismo archivo que las llaves consumer.
Ahora sabemos que A y B están arriba pero hemos venido por C y D :D
Paso 7 Verificar que tenemos permisos de lectura y escritura en la pestaña de al lado, como se muestra en la figura
Ya tenemos los datos que necesitamos para nuestro programa ahora debes dirigirte a una shell o Consola, en Windows debes ejecutar pip como siempre, en la consola debes ejecutar el siguiente código:
pip install twitter
Ya tenemos instalado Pytwitter o twitter-python, también hemos creado nuestra APP en twitter y ya tenemos los datos necesarios para conectarnos a la API de twitter, entonces que esperamos ya podemos comenzar a usar la API de twitter.
Lo primero que hay que hacer es crear un programa pequeño para probar que funciona, manos al teclado, como consejo que me ha ayudado mucho a entender mas mis programas te diré “Por favor, escribe tus programas una y otra vez siempre que puedas, esto te ayudara a analizar mas como funciona y donde podría mejorar o agregar alguna otra cosa, copiar y pegar no rules :D”
Puedes colocarle el nombre que quieras a tus programas pero te recomiendo usar parámetros que te ayuden a recordar mas sobre ellos, por ejemplo esta es la primera prueba de jugando con twitter lo nombraremos “twitter_prueba_1_jugando_con_la_API.py” es largo pero te aseguro que te evitara dolores de cabezas, si se que existe grep en linux y podemos buscar en los archivos bastante bien pero te recomiendo usar nombres identificadores de lo que estas haciendo y ademas una leyenda en cada programa para cuando hagamos el buscador de escritorio en python.
import twitter
# Lo primero que debemos hacer es ir a http://dev.twitter.com/apps/new y crear una app
#puedes ver https://dev.twitter.com/docs/auth/oauth para mas informacion
#las credenciales que necesitamos debemos copiarlas de XXXXXXXXXXXXXXXXXXXXXX y usarlas tal como se muestrasn en las imagenes de esta entrada http://wp.me/p3nJhK-ev
CONSUMER_KEY = 'Datos de A'
CONSUMER_SECRET = 'Datos de B'
OAUTH_TOKEN = 'Datos de C'
OAUTH_TOKEN_SECRET = 'Datos de D'
auth = twitter.oauth.OAuth( OAUTH_TOKEN , OAUTH_TOKEN_SECRET, CONSUMER_KEY , CONSUMER_SECRET )
twitter_api = twitter.Twitter(auth=auth)
print twitter_api
Es importante colocar los datos correctamente para que el sistema funcione, la salida del programa es esta:
<twitter.api.Twitter object at 0xb6d5fdac>
Ahora vamos a buscar un poco mas de información y vamos a crear el segundo programa twitter_prueba2Api.py:
import twitter
# Lo primero que debemos hacer es ir a http://dev.twitter.com/apps/new y crear una app
#puedes ver https://dev.twitter.com/docs/auth/oauth para mas informacion
#las credenciales que necesitamos debemos copiarlas de XXXXXXXXXXXXXXXXXXXXXX y usarlas tal como se muestrasn en las imagenes de esta entrada http://wp.me/p3nJhK-ev
CONSUMER_KEY = 'Datos de A'
CONSUMER_SECRET = 'Datos de B'
OAUTH_TOKEN = 'Datos de C'
OAUTH_TOKEN_SECRET = 'Datos de D'
auth = twitter.oauth.OAuth( OAUTH_TOKEN , OAUTH_TOKEN_SECRET, CONSUMER_KEY , CONSUMER_SECRET )
twitter_api = twitter.Twitter(auth=auth)
WORL_WOE_ID = 1
US_WOE_ID = 23424977
worl_trends = twitter_api.trends.place(_id=WORL_WOE_ID)
us_trends = twitter_api.trends.place(_id=US_WOE_ID)
print worl_trends
print
print us_trends
Este ultimo programa es muy básico, y con el vamos a sacar nuestra primera gran roca de la mina, no hemos sacado oro ni diamantas, ni siquiera plata o cobre o por lo menos carbón, hemos sacado una mezcla muy rara de todo esto:
[{u'created_at': u'2016-08-05T13:28:23Z', u'trends': [{u'url': u'http://twitter.com/search?q=%E3%82%82%E3%81%AE%E3%81%AE%E3%81%91%E5%A7%AB', u'query': u'%E3%82%82%E3%81%AE%E3%81%AE%E3%81%91%E5%A7%AB', u'tweet_volume': 166784, u'name': u'\u3082\u306e\u306e\u3051\u59eb', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23BuenViernes', u'query': u'%23BuenViernes', u'tweet_volume': 13686, u'name': u'#BuenViernes', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%E3%82%A2%E3%82%B7%E3%82%BF%E3%82%AB', u'query': u'%E3%82%A2%E3%82%B7%E3%82%BF%E3%82%AB', u'tweet_volume': 127446, u'name': u'\u30a2\u30b7\u30bf\u30ab', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23DiaDeLaCerveza', u'query': u'%23DiaDeLaCerveza', u'tweet_volume': 15356, u'name': u'#DiaDeLaCerveza', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%22Vander+Lee%22', u'query': u'%22Vander+Lee%22', u'tweet_volume': None, u'name': u'Vander Lee', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23%EB%8D%94%EC%9C%84%EB%A8%B9%EC%9D%80_%EA%B8%B0%EB%85%90%EC%9C%BC%EB%A1%9C_%ED%97%9B%EC%86%8C%EB%A6%AC%EB%A5%BC_%ED%95%B4%EB%B3%B4%EC%9E%90', u'query': u'%23%EB%8D%94%EC%9C%84%EB%A8%B9%EC%9D%80_%EA%B8%B0%EB%85%90%EC%9C%BC%EB%A1%9C_%ED%97%9B%EC%86%8C%EB%A6%AC%EB%A5%BC_%ED%95%B4%EB%B3%B4%EC%9E%90', u'tweet_volume': None, u'name': u'#\ub354\uc704\uba39\uc740_\uae30\ub150\uc73c\ub85c_\ud5db\uc18c\ub9ac\ub97c_\ud574\ubcf4\uc790', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23FridayFeeling', u'query': u'%23FridayFeeling', u'tweet_volume': 40884, u'name': u'#FridayFeeling', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23%D8%A7%D8%B3%D9%85_%D8%A7%D8%AE%D8%B1_%D8%A7%D9%84%D8%B9%D9%86%D9%82%D9%88%D8%AF_%D8%B9%D9%86%D8%AF%D9%83%D9%85', u'query': u'%23%D8%A7%D8%B3%D9%85_%D8%A7%D8%AE%D8%B1_%D8%A7%D9%84%D8%B9%D9%86%D9%82%D9%88%D8%AF_%D8%B9%D9%86%D8%AF%D9%83%D9%85', u'tweet_volume': 46182, u'name': u'#\u0627\u0633\u0645_\u0627\u062e\u0631_\u0627\u0644\u0639\u0646\u0642\u0648\u062f_\u0639\u0646\u062f\u0643\u0645', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%22Celia+Villalobos%22', u'query': u'%22Celia+Villalobos%22', u'tweet_volume': None, u'name': u'Celia Villalobos', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%22Vijay+Rupani%22', u'query': u'%22Vijay+Rupani%22', u'tweet_volume': None, u'name': u'Vijay Rupani', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%22I+Ran+the+C.I.A.+Now%22', u'query': u'%22I+Ran+the+C.I.A.+Now%22', u'tweet_volume': None, u'name': u'I Ran the C.I.A. Now', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=UEFA', u'query': u'UEFA', u'tweet_volume': 70086, u'name': u'UEFA', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%E5%8F%A3%E7%A7%BB%E3%81%97', u'query': u'%E5%8F%A3%E7%A7%BB%E3%81%97', u'tweet_volume': None, u'name': u'\u53e3\u79fb\u3057', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23FPJAPPalomaIsBack', u'query': u'%23FPJAPPalomaIsBack', u'tweet_volume': 32507, u'name': u'#FPJAPPalomaIsBack', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23A41MesesDeTuSiembraComandante', u'query': u'%23A41MesesDeTuSiembraComandante', u'tweet_volume': None, u'name': u'#A41MesesDeTuSiembraComandante', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23ToiAussiAnnuleUnTruc', u'query': u'%23ToiAussiAnnuleUnTruc', u'tweet_volume': None, u'name': u'#ToiAussiAnnuleUnTruc', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23K%C4%B1l%C4%B1%C3%A7daro%C4%9FluYenikap%C4%B1ya', u'query': u'%23K%C4%B1l%C4%B1%C3%A7daro%C4%9FluYenikap%C4%B1ya', u'tweet_volume': 15145, u'name': u'#K\u0131l\u0131\xe7daro\u011fluYenikap\u0131ya', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23BraderiedeLille', u'query': u'%23BraderiedeLille', u'tweet_volume': 15769, u'name': u'#BraderiedeLille', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23MinhaInfanciaFoiBoaPq', u'query': u'%23MinhaInfanciaFoiBoaPq', u'tweet_volume': None, u'name': u'#MinhaInfanciaFoiBoaPq', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23%D9%84%D8%A7%D8%B9%D8%A8_%D8%AA%D9%85%D9%86%D9%8A%D8%AA_%D9%85%D8%A7_%D8%B7%D9%84%D8%B9_%D9%85%D9%86_%D9%86%D8%A7%D8%AF%D9%8A%D9%83', u'query': u'%23%D9%84%D8%A7%D8%B9%D8%A8_%D8%AA%D9%85%D9%86%D9%8A%D8%AA_%D9%85%D8%A7_%D8%B7%D9%84%D8%B9_%D9%85%D9%86_%D9%86%D8%A7%D8%AF%D9%8A%D9%83', u'tweet_volume': 21991, u'name': u'#\u0644\u0627\u0639\u0628_\u062a\u0645\u0646\u064a\u062a_\u0645\u0627_\u0637\u0644\u0639_\u0645\u0646_\u0646\u0627\u062f\u064a\u0643', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23%D8%B9%D9%84%D9%8A_%D8%AC%D9%85%D8%B9%D9%87', u'query': u'%23%D8%B9%D9%84%D9%8A_%D8%AC%D9%85%D8%B9%D9%87', u'tweet_volume': None, u'name': u'#\u0639\u0644\u064a_\u062c\u0645\u0639\u0647', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23SextaDetremuraSdv', u'query': u'%23SextaDetremuraSdv', u'tweet_volume': None, u'name': u'#SextaDetremuraSdv', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23%D0%90%D0%B2%D0%B3%D1%83%D1%81%D1%82%D0%A4%D0%BE%D0%BB%D0%BB%D0%BE%D0%B2%D0%B8%D1%82%D0%98%D0%BD%D1%81%D1%82%D1%83', u'query': u'%23%D0%90%D0%B2%D0%B3%D1%83%D1%81%D1%82%D0%A4%D0%BE%D0%BB%D0%BB%D0%BE%D0%B2%D0%B8%D1%82%D0%98%D0%BD%D1%81%D1%82%D1%83', u'tweet_volume': None, u'name': u'#\u0410\u0432\u0433\u0443\u0441\u0442\u0424\u043e\u043b\u043b\u043e\u0432\u0438\u0442\u0418\u043d\u0441\u0442\u0443', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23QuerUmConselho', u'query': u'%23QuerUmConselho', u'tweet_volume': None, u'name': u'#QuerUmConselho', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23%D9%83%D9%84_%D8%A7%D9%84%D8%AD%D8%A8_%D8%A7%D9%84%D9%8A_%D8%A8%D9%82%D9%84%D8%A8%D9%83_%D9%84%D9%85%D9%8A%D9%86', u'query': u'%23%D9%83%D9%84_%D8%A7%D9%84%D8%AD%D8%A8_%D8%A7%D9%84%D9%8A_%D8%A8%D9%82%D9%84%D8%A8%D9%83_%D9%84%D9%85%D9%8A%D9%86', u'tweet_volume': 57892, u'name': u'#\u0643\u0644_\u0627\u0644\u062d\u0628_\u0627\u0644\u064a_\u0628\u0642\u0644\u0628\u0643_\u0644\u0645\u064a\u0646', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23DeberiaSerDeporteOlimpico', u'query': u'%23DeberiaSerDeporteOlimpico', u'tweet_volume': None, u'name': u'#DeberiaSerDeporteOlimpico', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23OpeningCeremony', u'query': u'%23OpeningCeremony', u'tweet_volume': 17173, u'name': u'#OpeningCeremony', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23%D8%A7%D9%86%D9%82%D8%B0%D9%88%D8%A7_%D8%A8%D9%86%D8%A7%D8%AA_%D8%A7%D9%84%D8%B4%D9%8A%D8%B9%D9%87_%D9%85%D9%86_%D8%A7%D9%84%D9%85%D8%AA%D8%B9%D9%87', u'query': u'%23%D8%A7%D9%86%D9%82%D8%B0%D9%88%D8%A7_%D8%A8%D9%86%D8%A7%D8%AA_%D8%A7%D9%84%D8%B4%D9%8A%D8%B9%D9%87_%D9%85%D9%86_%D8%A7%D9%84%D9%85%D8%AA%D8%B9%D9%87', u'tweet_volume': 21231, u'name': u'#\u0627\u0646\u0642\u0630\u0648\u0627_\u0628\u0646\u0627\u062a_\u0627\u0644\u0634\u064a\u0639\u0647_\u0645\u0646_\u0627\u0644\u0645\u062a\u0639\u0647', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23DolceAmoreParanoid', u'query': u'%23DolceAmoreParanoid', u'tweet_volume': 1553568, u'name': u'#DolceAmoreParanoid', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23%C4%B0stifan%C4%B1VerVitorPereira', u'query': u'%23%C4%B0stifan%C4%B1VerVitorPereira', u'tweet_volume': None, u'name': u'#\u0130stifan\u0131VerVitorPereira', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23%D9%8A%D9%88%D9%85_%D8%A7%D9%84%D8%AC%D9%85%D8%B9%D9%87', u'query': u'%23%D9%8A%D9%88%D9%85_%D8%A7%D9%84%D8%AC%D9%85%D8%B9%D9%87', u'tweet_volume': 134245, u'name': u'#\u064a\u0648\u0645_\u0627\u0644\u062c\u0645\u0639\u0647', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23AFLTigersPies', u'query': u'%23AFLTigersPies', u'tweet_volume': None, u'name': u'#AFLTigersPies', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23InternationalBeerDay', u'query': u'%23InternationalBeerDay', u'tweet_volume': None, u'name': u'#InternationalBeerDay', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23%D9%85%D9%8A%D9%84%D8%A7%D9%86%D9%8A%D8%B3%D8%AA%D8%A7_%D9%82%D8%A8%D9%84_%D8%A7%D9%84%D8%A7%D8%B3%D8%AA%D8%AB%D9%85%D8%A7%D8%B1', u'query': u'%23%D9%85%D9%8A%D9%84%D8%A7%D9%86%D9%8A%D8%B3%D8%AA%D8%A7_%D9%82%D8%A8%D9%84_%D8%A7%D9%84%D8%A7%D8%B3%D8%AA%D8%AB%D9%85%D8%A7%D8%B1', u'tweet_volume': None, u'name': u'#\u0645\u064a\u0644\u0627\u0646\u064a\u0633\u062a\u0627_\u0642\u0628\u0644_\u0627\u0644\u0627\u0633\u062a\u062b\u0645\u0627\u0631', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23AlgoPasaEnPcComponentes', u'query': u'%23AlgoPasaEnPcComponentes', u'tweet_volume': None, u'name': u'#AlgoPasaEnPcComponentes', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23ElectionLiterature', u'query': u'%23ElectionLiterature', u'tweet_volume': None, u'name': u'#ElectionLiterature', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23%E8%B2%B4%E6%96%B9%E3%81%8C%E6%BC%AB%E7%94%BB%E3%81%AE%E3%82%AD%E3%83%A3%E3%83%A9%E3%81%A0%E3%81%A3%E3%81%9F%E3%82%89', u'query': u'%23%E8%B2%B4%E6%96%B9%E3%81%8C%E6%BC%AB%E7%94%BB%E3%81%AE%E3%82%AD%E3%83%A3%E3%83%A9%E3%81%A0%E3%81%A3%E3%81%9F%E3%82%89', u'tweet_volume': 16099, u'name': u'#\u8cb4\u65b9\u304c\u6f2b\u753b\u306e\u30ad\u30e3\u30e9\u3060\u3063\u305f\u3089', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23SportskeedaOnOperaMini', u'query': u'%23SportskeedaOnOperaMini', u'tweet_volume': None, u'name': u'#SportskeedaOnOperaMini', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23SajidNadiadwalaHattrick', u'query': u'%23SajidNadiadwalaHattrick', u'tweet_volume': None, u'name': u'#SajidNadiadwalaHattrick', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23DOTSOneShot', u'query': u'%23DOTSOneShot', u'tweet_volume': 80554, u'name': u'#DOTSOneShot', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23FelizFinde', u'query': u'%23FelizFinde', u'tweet_volume': None, u'name': u'#FelizFinde', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23%D8%A7%D9%84%D9%87%D9%84%D8%A7%D9%84_%D8%B3%D9%8A%D8%B7%D8%B1%D8%AF_%D9%85%D8%B1%D9%8A%D9%85_%D8%AD%D8%B3%D9%8A%D9%86', u'query': u'%23%D8%A7%D9%84%D9%87%D9%84%D8%A7%D9%84_%D8%B3%D9%8A%D8%B7%D8%B1%D8%AF_%D9%85%D8%B1%D9%8A%D9%85_%D8%AD%D8%B3%D9%8A%D9%86', u'tweet_volume': None, u'name': u'#\u0627\u0644\u0647\u0644\u0627\u0644_\u0633\u064a\u0637\u0631\u062f_\u0645\u0631\u064a\u0645_\u062d\u0633\u064a\u0646', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%2313Rosas', u'query': u'%2313Rosas', u'tweet_volume': 37999, u'name': u'#13Rosas', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23DontTellTheKidsBut', u'query': u'%23DontTellTheKidsBut', u'tweet_volume': None, u'name': u'#DontTellTheKidsBut', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23IrisBastiAli', u'query': u'%23IrisBastiAli', u'tweet_volume': 49557, u'name': u'#IrisBastiAli', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23%EB%A9%98%EC%85%98%EC%98%A8_3%EB%8B%A8%EC%96%B4%EB%A1%9C_%EB%8B%89%EB%84%A4%EC%9E%84', u'query': u'%23%EB%A9%98%EC%85%98%EC%98%A8_3%EB%8B%A8%EC%96%B4%EB%A1%9C_%EB%8B%89%EB%84%A4%EC%9E%84', u'tweet_volume': None, u'name': u'#\uba58\uc158\uc628_3\ub2e8\uc5b4\ub85c_\ub2c9\ub124\uc784', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23ISupportBreastfeeding', u'query': u'%23ISupportBreastfeeding', u'tweet_volume': None, u'name': u'#ISupportBreastfeeding', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23FlashbackFriday', u'query': u'%23FlashbackFriday', u'tweet_volume': None, u'name': u'#FlashbackFriday', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23jobsreport', u'query': u'%23jobsreport', u'tweet_volume': None, u'name': u'#jobsreport', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23IveBeenAloneSoLongThat', u'query': u'%23IveBeenAloneSoLongThat', u'tweet_volume': None, u'name': u'#IveBeenAloneSoLongThat', u'promoted_content': None}], u'as_of': u'2016-08-05T13:35:10Z', u'locations': [{u'woeid': 1, u'name': u'Worldwide'}]}]
[{u'created_at': u'2016-08-05T13:33:30Z', u'trends': [{u'url': u'http://twitter.com/search?q=%22I+Ran+the+C.I.A.+Now%22', u'query': u'%22I+Ran+the+C.I.A.+Now%22', u'tweet_volume': None, u'name': u'I Ran the C.I.A. Now', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23DontTellTheKidsBut', u'query': u'%23DontTellTheKidsBut', u'tweet_volume': None, u'name': u'#DontTellTheKidsBut', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23jobsreport', u'query': u'%23jobsreport', u'tweet_volume': None, u'name': u'#jobsreport', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23FlashbackFriday', u'query': u'%23FlashbackFriday', u'tweet_volume': None, u'name': u'#FlashbackFriday', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23OpeningCeremony', u'query': u'%23OpeningCeremony', u'tweet_volume': 17569, u'name': u'#OpeningCeremony', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23IveBeenAloneSoLongThat', u'query': u'%23IveBeenAloneSoLongThat', u'tweet_volume': None, u'name': u'#IveBeenAloneSoLongThat', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%22Mark+Teixeira%22', u'query': u'%22Mark+Teixeira%22', u'tweet_volume': None, u'name': u'Mark Teixeira', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%22Insiders+to+Trump%22', u'query': u'%22Insiders+to+Trump%22', u'tweet_volume': None, u'name': u'Insiders to Trump', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%22Fairfax+City%22', u'query': u'%22Fairfax+City%22', u'tweet_volume': None, u'name': u'Fairfax City', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%22255%2C000+in+July%22', u'query': u'%22255%2C000+in+July%22', u'tweet_volume': None, u'name': u'255,000 in July', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%22DE+George+Johnson%22', u'query': u'%22DE+George+Johnson%22', u'tweet_volume': None, u'name': u'DE George Johnson', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=Heathrow', u'query': u'Heathrow', u'tweet_volume': 25878, u'name': u'Heathrow', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%22Release+Radar%22', u'query': u'%22Release+Radar%22', u'tweet_volume': None, u'name': u'Release Radar', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%22Neil+Armstrong%22', u'query': u'%22Neil+Armstrong%22', u'tweet_volume': None, u'name': u'Neil Armstrong', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%22Ice+Ice+Baby%22', u'query': u'%22Ice+Ice+Baby%22', u'tweet_volume': None, u'name': u'Ice Ice Baby', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%22Ivanka+for+Cabinet%22', u'query': u'%22Ivanka+for+Cabinet%22', u'tweet_volume': None, u'name': u'Ivanka for Cabinet', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%22Ryan+Republicans%22', u'query': u'%22Ryan+Republicans%22', u'tweet_volume': None, u'name': u'Ryan Republicans', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%22Rodney+McLeod%22', u'query': u'%22Rodney+McLeod%22', u'tweet_volume': None, u'name': u'Rodney McLeod', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%22RB+Jay+Ajayi%22', u'query': u'%22RB+Jay+Ajayi%22', u'tweet_volume': None, u'name': u'RB Jay Ajayi', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%22Prime+Air%22', u'query': u'%22Prime+Air%22', u'tweet_volume': None, u'name': u'Prime Air', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%22John+Paulson%22', u'query': u'%22John+Paulson%22', u'tweet_volume': None, u'name': u'John Paulson', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%22Don%27t+Do+It+For+You+No+More%22', u'query': u'%22Don%27t+Do+It+For+You+No+More%22', u'tweet_volume': None, u'name': u"Don't Do It For You No More", u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23BlakeTODAY', u'query': u'%23BlakeTODAY', u'tweet_volume': None, u'name': u'#BlakeTODAY', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23SheBelieves', u'query': u'%23SheBelieves', u'tweet_volume': None, u'name': u'#SheBelieves', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23XAmbassadorsOnGMA', u'query': u'%23XAmbassadorsOnGMA', u'tweet_volume': None, u'name': u'#XAmbassadorsOnGMA', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23InternationalBeerDay', u'query': u'%23InternationalBeerDay', u'tweet_volume': None, u'name': u'#InternationalBeerDay', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23ReadWhereYouAre', u'query': u'%23ReadWhereYouAre', u'tweet_volume': None, u'name': u'#ReadWhereYouAre', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23MatthewExposedparty', u'query': u'%23MatthewExposedparty', u'tweet_volume': 29218, u'name': u'#MatthewExposedparty', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23smckc', u'query': u'%23smckc', u'tweet_volume': None, u'name': u'#smckc', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23NFPguesses', u'query': u'%23NFPguesses', u'tweet_volume': None, u'name': u'#NFPguesses', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23FitnessFriday', u'query': u'%23FitnessFriday', u'tweet_volume': None, u'name': u'#FitnessFriday', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23DiaDeLaCerveza', u'query': u'%23DiaDeLaCerveza', u'tweet_volume': 15729, u'name': u'#DiaDeLaCerveza', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23FriYAY', u'query': u'%23FriYAY', u'tweet_volume': None, u'name': u'#FriYAY', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23cdnecon', u'query': u'%23cdnecon', u'tweet_volume': None, u'name': u'#cdnecon', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23seriousacademic', u'query': u'%23seriousacademic', u'tweet_volume': None, u'name': u'#seriousacademic', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23DontGetWeirdedOutBy', u'query': u'%23DontGetWeirdedOutBy', u'tweet_volume': None, u'name': u'#DontGetWeirdedOutBy', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23BuenViernes', u'query': u'%23BuenViernes', u'tweet_volume': 14174, u'name': u'#BuenViernes', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23UpdatedRioOlympicEvents', u'query': u'%23UpdatedRioOlympicEvents', u'tweet_volume': None, u'name': u'#UpdatedRioOlympicEvents', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23sfsmasc', u'query': u'%23sfsmasc', u'tweet_volume': None, u'name': u'#sfsmasc', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23REDFriday', u'query': u'%23REDFriday', u'tweet_volume': None, u'name': u'#REDFriday', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23AFLTigersPies', u'query': u'%23AFLTigersPies', u'tweet_volume': None, u'name': u'#AFLTigersPies', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23DeberiaSerDeporteOlimpico', u'query': u'%23DeberiaSerDeporteOlimpico', u'tweet_volume': None, u'name': u'#DeberiaSerDeporteOlimpico', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23NewMusicFriday', u'query': u'%23NewMusicFriday', u'tweet_volume': None, u'name': u'#NewMusicFriday', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23charlotteiscreative', u'query': u'%23charlotteiscreative', u'tweet_volume': None, u'name': u'#charlotteiscreative', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23BullyHill100', u'query': u'%23BullyHill100', u'tweet_volume': None, u'name': u'#BullyHill100', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23teamsouthbend', u'query': u'%23teamsouthbend', u'tweet_volume': None, u'name': u'#teamsouthbend', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23HappyBirthdayElvis', u'query': u'%23HappyBirthdayElvis', u'tweet_volume': None, u'name': u'#HappyBirthdayElvis', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23FunFactFriday', u'query': u'%23FunFactFriday', u'tweet_volume': None, u'name': u'#FunFactFriday', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%23payrolls', u'query': u'%23payrolls', u'tweet_volume': None, u'name': u'#payrolls', u'promoted_content': None}, {u'url': u'http://twitter.com/search?q=%231YearSinceOTRAMetLife', u'query': u'%231YearSinceOTRAMetLife', u'tweet_volume': None, u'name': u'#1YearSinceOTRAMetLife', u'promoted_content': None}], u'as_of': u'2016-08-05T13:35:12Z', u'locations': [{u'woeid': 23424977, u'name': u'United States'}]}]
Parece poca cosa ahora copialo todo y pegalo en un documento de texto y veras toda la información :D
Hasta aquí la parte sencilla y engorrosa, en las entradas siguientes la cosa se pone un poco mas interesante e iremos aprendiendo mucho mas de como refinar estos datos e ir haciendo nuestra base de datos con todos estos datos, ojo es muy importante que tengamos en cuenta que xml, json y las api(hechas en json) son como un estándar de un diccionario python, es justo esto lo que ha devuelto el programa un diccionario en python aunque de forma explicita no se lo pedimos, esto nos ayudara a entender como sacar la información por ejemplo podríamos tomar un bucle for e ir tomando para cada clave este es el valor y agregarlo a la BD y estaría bien, en las próximas entradas veremos esto y mas :D… saludo y sonrían es gratis y sabroso
Dios les Guarde y les Bendiga siempre :D