Recuperación de datos de SEO de la API de Rank Ranger usando Python

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:

Ahora queremos desempaquetar el contenido de la respuesta de la API utilizando el atributo “.text” del elemento “r” junto con la función pandas (pd) read_json(). Esto se almacenará en una nueva variable llamada “packages_output”:

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


Previous post 17 estados involucrados en el proceso DOJ
Next post ¿Cuál es la mejor manera de organizar la información en un gráfico? | Verónica Gawarska-Tywonek | abril 2023

Deja una respuesta