
20 de abril de 2023 | Publicado por Andreas Voniatis
Las API a menudo pueden ser bastante intimidantes para los profesionales de SEO, especialmente para aquellos que están más acostumbrados a trabajar en Microsoft Excel. Si bien Rank Ranger proporciona documentación fácil de entender, escribí esta guía para brindarle el código de Python para que pueda copiar y pegar literalmente el código para comenzar de inmediato.
La API de Rank Ranger ofrece muchas capacidades de las dos API principales:
- Informes: administre y extraiga los datos de los clientes que rastrea en su cuenta de Rank Ranger
- Búsqueda: información de la competencia como SERP con características
Nos centraremos en obtener datos sobre:
- Número de identificación del paquete (requerido para obtener datos del resto de la API)
- Las campañas que ejecutas
- Palabras clave (dentro de la campaña)
- Clasificaciones (para sus palabras clave)
Notará que hay varios pasos en cada sección que explicamos para ayudarlo a comprender lo que hace el código de Python, para que pueda aprender un poco de Python en el camino mientras aprecia los pequeños obstáculos que deben superarse para obtener datos. !
Contenido del Articulo
Pasos preliminares
Puede asumir que todo el código de Python se ejecutará localmente en un cuaderno Jupyter en su máquina; sin embargo, el código también debería ejecutarse en cuadernos de Google Colab.
Comenzamos importando nuestras bibliotecas:
Necesitará su token de API, que se genera en Configuración > API y aplicaciones conectadas, para reemplazar el token de API ficticio a continuación:
api_token = ‘12345-x1234abcd12345abcdefg0xyz1h2a3seo’
Número de identificación del paquete
Después de importar los paquetes de la biblioteca de python y configurar el token de API, estamos listos para comenzar a usar la API:
Primero, construimos y ejecutamos la solicitud, cuyo resultado se almacena en un objeto llamado “r”. La solicitud ‘r’ es la URL de la API que nombramos, contiene la URL de la API, el punto final de la API de los ‘paquetes’ (marcado en amarillo), la clave de la API y la salida establecida en json:
Imprimimos “r” para ver si la llamada a la API fue exitosa (o no):
imprimir (r)
A continuación obtenemos una respuesta de 200, lo cual es una buena señal:
paquetes_salida = pd.read_json(r.text)
Para hacer que la salida json se pueda analizar, la convertiremos en una lista usando la función to_list():
lista_paquete = salida_paquete[‘packages’].nota()
Usando print podemos ver cómo se ve:
imprimir (paquete_lista)
A continuación se muestra un resultado de muestra con el número de identificación del paquete resaltado:
campañas
Una vez que tenga su ID de paquete, que está impreso como “87321” en el ejemplo anterior, puede comenzar a ver de qué campañas desea extraer datos. Comenzaremos configurando la variable packages_id:
paquetes_id = ‘87321’
A continuación, crearemos la solicitud, esta vez usando el punto final “package_campaigns”:
Como antes, desempaquetaremos la respuesta de la API con read_json, la convertiremos en una lista e imprimiremos los resultados:
Nuevamente, tenemos una lista ficticia para mostrar cómo se vería el resultado:
Tenga en cuenta que el resultado enumera todas las campañas por ID de campaña, nombre, dominio y motor de destino.
Palabras clave
Obtengamos las palabras clave de la campaña Slate Safety que usará el extremo de la API get_campaign_info y el ID de campaña deseado establecido a continuación:
Verá desde las palabras clave de salida que obtiene todo tipo de información como dominio, número de palabras clave, palabras clave en sí mismas, dominio, motor de búsqueda, etc.:
As usual, we’ll convert the output to a list:
keywords_list = keywords_output[‘result’].nota()
Luego, para obtener las palabras clave, solo necesitamos el 6º elemento de la lista, pasando “5”. La razón por la que pasamos 5 y no 6 es porque Python usa la indexación basada en cero, donde 0 se cuenta como el primer elemento de cualquier lista:
imprimir (list_slow_keys[5])
El resultado que se muestra a continuación no solo tiene palabras clave, sino también cualquier etiqueta asignada a ellas. Tenga en cuenta que el sexto elemento de la lista es un diccionario, que es una de las formas en que Python almacena datos. En este caso, la clave del diccionario es “palabra clave” y el valor es una lista de diccionarios (uno por palabra clave):
clasificaciones
Afortunadamente, no necesita palabras clave para obtener clasificaciones. A diferencia de otras API de seguimiento de clasificación con las que he trabajado (¡con las que nos ahorraremos la vergüenza de permanecer sin nombre!), la API de Rank Ranger solo requiere:
-
Identificación de la campaña -
Fecha -
Dominio -
Identificación del motor de búsqueda
Con el parámetro include_best_rank, incluso puede preguntar si desea que todas las métricas de posición se desglosen por palabra clave o la posición mejor clasificada por palabra clave. Obtengamos los datos de clasificación de palabras clave usando lo anterior para crear una solicitud de API usando el punto final de la API rank_stats.
Primero establezca los parámetros:
Cree y ejecute una solicitud de API antes de convertirla en una lista:
Y aquí está el resultado que muestra los datos de clasificación de las primeras 4 palabras clave:
Tenga en cuenta que los datos de la URL son en realidad el dominio, y el “lp” (probablemente la página de destino) es la URL de clasificación sin la parte del dominio. Deberá combinar las claves del diccionario url y LP para crear una url clasificada, lo que haremos más adelante en el código.
Por supuesto, el formato de los datos del ranking no nos es muy útil si queremos exportar y crear un informe en Excel o simplemente mirar los datos. Así que revisaremos el diccionario de arriba para crear un marco de datos. Un marco de datos es una versión de Python de una tabla de datos que es similar a lo que ve en una hoja de cálculo, es decir, filas y columnas.
Primero, crearemos un marco de datos vacío llamado rankings_df para contener todos los datos:
rankings_df = pd.DataFrame(columnas=[‘keyword’])
Configure una lista vacía llamada filas_lista que contendrá todas las filas de datos como una lista:
fila_lista = []
A continuación, veremos el diccionario rankings_list (el extracto impreso arriba) para enumerar los datos de un posible marco de datos. La URL será una combinación de la URL y la página de destino. Un bucle for es una técnica de codificación útil para evitar la repetición de líneas de código, que en este caso consiste en recorrer cada elemento ranks_list, decirle a Python en qué columna almacenar los datos y luego agregar el resultado a rows_list:
Cuando se complete el ciclo for (es decir, el bloque de código anterior), se pasará rows_list a la función Pandas DataFrame para crear rankings_df, nuestra tabla de clasificación de datos:
rankings_df= pd.DataFrame(filas_lista)
El slug de URL está envuelto entre llaves, que queremos reemplazar con:
clasificaciones_df[‘url’] = clasificaciones_df[‘url’].str.replace(‘{‘, ”)
clasificaciones_df[‘url’] = clasificaciones_df[‘url’].str.replace(‘}’, ”)
La columna de clasificación también devuelve un “-” para las palabras clave para las que su sitio no está clasificado. La mejor respuesta sería reemplazar esto con “100” y convertir el tipo de columna a numérico como se muestra a continuación:
clasificaciones_df[‘rank’] = clasificaciones_df[‘rank’].str.replace(‘-‘, ‘100’)
clasificaciones_df[‘rank’] = clasificaciones_df[‘rank’].astype(flotante)
Para imprimir un marco de datos:
clasificaciones_df
Ahora tenemos un dataframe listo para ser exportado en formato CSV usando la función to_csv() de Pandas:
rankings_df.to_csv(‘tu_nombre_de_archivo.csv’)
Avanzando
Si has llegado hasta aquí (sin navegar), ¡felicidades! Hemos cubierto los conceptos básicos del uso de Python para usar la API de RankRanger que puede ayudarlo a:
-
Cree paneles de informes personalizados -
Extraiga datos a escala para su investigación de SEO
Como se mencionó, Rank Ranger tiene API Insight que pueden brindarle mucha información sobre la intención de búsqueda de la consulta, que trataremos en el próximo artículo.
Descubra cómo Rank Ranger puede mejorar su negocio
Todos los datos en los insights que necesitas para dominar las SERPs