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

in #spanish7 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

Sort:  

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

Coin Marketplace

STEEM 0.16
TRX 0.16
JST 0.031
BTC 59005.68
ETH 2516.43
USDT 1.00
SBD 2.48