Extraccion y Clasificacion de Datos de Nuestra API STEEMIT [ADELANTO]
Hoy me instale a extraer datos de nuestra API https://api.steemjs.com, muchas gracias a #fabien por aclararme algunas dudas y darme la clave para llegar a extraer todos los Post de una cuenta para Extraer datos de la misma.
De que nos servirán estos datos???
- Nos servirán para saber a que hora publicar por ejemplo
- Para saber quienes siguen nuestros Post
- Para saber a donde debemos dirigir nuestros esfuerzos
- Para saber a quien Podemos seguir y cuando Votar, para ser mejores curadores
Vamos a generar ahora mismo una Tabla pero mas adelante vamos a generar Gráficas para que podamos divisar de una manera mas elegante nuestros datos y proyectarnos con mas fuerzas a nuestros seguidores!
Aquí tenemos el primer código de esta serie:
import requests
from lxml import etree
import os, subprocess, re
from prettytable import PrettyTable
llamada = "curl -X GET --header 'Accept: application/json' 'https://api.steemjs.com/get_discussions_by_blog?query=%7B%22tag%22%3A%22sethroot%22%2C%20%22limit%22%3A%20%22100%22%7D' > llamada_correcta_extraer_blogs.txt"
codigo_unico1 = subprocess.call(llamada, shell=True)
archivo = "/home/setroot/steem_api/llamada_correcta_extraer_blogs.txt"
posts_del_blog_analizado = open(archivo,'r')
posts_del_blog_analizado = posts_del_blog_analizado.read().splitlines()
for posts in posts_del_blog_analizado:
posts = posts.replace("true","True")
posts = posts.replace("null","False")
posts = posts.replace("false","False")
posts_eval = eval(posts)
hh = 0
lista_posts1 = []
list_title = []
list_pending_payout_value = []
list_category = []
list_created = []
list_author = []
list_net_votes = []
list_active_votes = []
list_total_payout_value = []
for post in posts_eval:
diccionario_nuevos_post = {}
for llave,valor in post.items():
if llave == "title":
if len(valor)>= 20:
valor = valor[0:20]
diccionario_nuevos_post[llave] = valor
lista_posts1.append(diccionario_nuevos_post)
list_title.append(valor)
elif llave == "pending_payout_value":
valor = valor.replace("SBD", "")
valor = float(valor.strip())
diccionario_nuevos_post[llave] = valor
lista_posts1.append(diccionario_nuevos_post)
list_pending_payout_value.append(valor)
elif llave == "total_payout_value":
valor = valor.replace("SBD", "")
valor = float(valor.strip())
diccionario_nuevos_post[llave] = valor
lista_posts1.append(diccionario_nuevos_post)
list_total_payout_value.append(valor)
elif llave == "category":
diccionario_nuevos_post[llave] = valor
lista_posts1.append(diccionario_nuevos_post)
list_category.append(valor)
elif llave == "created":
diccionario_nuevos_post[llave] = valor
lista_posts1.append(diccionario_nuevos_post)
list_created.append(valor)
elif llave == "author":
diccionario_nuevos_post[llave] = valor
lista_posts1.append(diccionario_nuevos_post)
list_author.append(valor)
elif llave == "net_votes":
diccionario_nuevos_post[llave] = valor
lista_posts1.append(diccionario_nuevos_post)
list_net_votes.append(valor)
elif llave == "active_votes":
diccionario_nuevos_post[llave] = valor
lista_posts1.append(diccionario_nuevos_post)
list_active_votes.append(valor)
h = 0
table = PrettyTable(["Titulo", "Pago","Categoria" , "Creada", "Votos", "Pagado"])
for i in list_title:
table.add_row([list_title[h],
list_pending_payout_value[h],
list_category[h],
list_created[h],
list_net_votes[h],
list_total_payout_value[h]
])
h += 1
tab_Pago= table.get_string(sortby=("Pago"), reversesort=True)
print tab_Pago
Si que podía hacerlo un poco mejor, al final fue que me di cuenta pero ya mañana modificare el código y agregare algunas características mas :D
Esta es parte de la salida que pueden obtener:
+----------------------+--------+-------------------+---------------------+-------+
| Titulo | Pago | Categoria | Creada | Votos |
+----------------------+--------+-------------------+---------------------+-------+
| NBA FINAL: WARRIORS | 34.091 | spanish | 2017-06-09T21:56:15 | 55 |
| NBA FINAL, Se acabar | 27.954 | spanish | 2017-06-07T21:10:30 | 69 |
| Venezuela Crisis: La | 18.012 | crisis | 2017-06-07T11:26:06 | 21 |
| NBA FINALES GRAFICAS | 17.386 | spanish | 2017-06-13T01:00:33 | 47 |
| NBA y Estadisticas c | 10.932 | spanish | 2017-06-07T00:03:09 | 43 |
| NBA FINAL: CLEVELAND | 3.943 | spanish | 2017-06-12T22:08:57 | 39 |
| NBA FINAL: Forecast | 3.94 | nba | 2017-06-12T23:53:45 | 38 |
| Venezuela vence a Ur | 0.236 | spanish | 2017-06-08T11:53:24 | 19 |
| A VOTAR POR NUESTROS | 0.164 | spanish | 2017-06-10T15:03:39 | 10 |
Y bueno si quieren usar el código con su cuenta solo tienen que cambiar el nombre sethroot por el suyo, pero mas adelante a los que voten les iré haciendo su planilla estadística y se las envió a su correo así que atentos :D
Muchas Gracias, Dios les Bendiga Hasta la próxima
Buenas tardes @sethroot
Interesante aplicación.
Gracias amigo...
Y bueno apenas comienzo, quiero ayudar a la comunidad a tener una percepción mas realista del universo steemit...