Extraccion y Clasificacion de Datos de Nuestra API STEEMIT [ADELANTO]

in spanish •  7 years ago 

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

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

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...