Curso
MeetUp es una red social que permite a sus miembros crear comunidades virtuales para organizar eventos en su área geográfica. La idea no es nueva, pero su UI y UX han sido de lo más innovador en los últimos años. Han simplificado al máximo las tareas de organizar eventos específicos para una comunidad que se reúne a diario, semanalmente, mensualmente o cada dos meses.
La API de MeetUp permite recopilar datos directamente del sitio web. Como la mayoría de las APIs, muchos propietarios de dominios limitan la cantidad de datos que puedes solicitar. Algunos no mantienen bien la documentación de su API, y otros hacen un trabajo estupendo para que sea lo más amigable posible. MeetUp está en un punto intermedio. Hay muchas formas de utilizar su API.
Mi uso de la API de MeetUp fue para recopilar datos de tres grupos distintos en el área de Dallas–Fort Worth, en el norte de Texas. El lenguaje que utilicé para acceder a la API en el dominio de MeetUp fue Python. Dependiendo de con qué te sientas más cómodo, C++ o Python pueden bastar para usar la API de un sitio web.
Si aún no dominas Python, échale un vistazo a nuestro curso Intro to Python for Data Science.
En este tutorial, aprenderás a llamar a la API de MeetUp con Python. Verás cómo obtener el ID de un grupo y cómo usar ese ID junto con tu API Key para hacer una solicitud y obtener los datos del grupo en formato JSON. Por último, te mostraré cómo escribir los datos capturados en un archivo JSON que se guardará en tu PC o Mac.
¿Cómo conseguir una API key?
En el sitio web de MeetUp, necesitas tener una cuenta activa para obtener una API key. A todos los usuarios se les asigna una. Si no tienes cuenta, el primer paso es registrarte en MeetUp. Una vez hecho, puedes conseguir tu API key aquí.
Puedes restablecer tu clave en cualquier momento. Es importante mantener tu API key en confidencialidad.
Primeros pasos
Primero, importa todas las librerías de Python que vas a usar en tu script.
import meetup.api
import json
import requests
import time
import codecs
import sys
import io
Instalar la API
Asegúrate de tener meetup.api instalado en tu equipo antes de ejecutar este código. Si usas una terminal basada en UNIX, basta con un simple pip install como sigue:
pip install meetup.api
Si usas Jupyter Notebooks, puedes instalar la librería así:
!pip install meetup.api
Esto instalará la librería de la API de MeetUp para Python.
Como Python es un lenguaje interpretado, las definiciones juegan un papel importante en la sintaxis. Por ejemplo, al definir client puedes escribir cualquier solicitud y usar simplemente el término client para invocar la API key, evitando tener que teclearla una y otra vez. Este es un aspecto clave al programar en Python. Primero, define tu API key como client así:
client = meetup.api.Client('API Key Here')
Definir group_info te permite obtener la URL de un grupo a partir del nombre del grupo en el sitio de MeetUp.
group_info = client.GetGroup({'urlname': 'Group Name Here No Spaces'})
Obtener el ID de un grupo
Una vez hecho esto, ya puedes llamar a group_info y realizar varias consultas con él. Si escribes group_info.link, la salida será la URL completa del grupo.
group_info.link
Si llamas a group_info.id en la siguiente línea, obtendrás el ID numérico del grupo.
group_info.id
Necesitas el ID del grupo para poder seguir con el siguiente paso.
Hacer solicitudes
Ahora que ya tienes el ID del grupo, puedes realizar la solicitud definiendo df e insertando el id del grupo y tu API key en la URL. Esto se hace con request.get
df = requests.get('https://api.meetup.com/2/members?group_id=GROUP_ID&key=API_KEY')
Con df definido, ya puedes consultar el status_code, las cabeceras, la codificación y ver los datos directamente llamando al JSON.
Primero, escribe df.status_code; la salida del status_code debería ser: 200
Para las cabeceras, escribe df.headers['content-type']. Salida esperada: application/json;charset=utf-8
Para comprobar la codificación, escribe df.encoding. Salida esperada: utf-8
En este punto, tus datos, definidos como df, ya existen. Para verlos en línea, escribe df.json()
Escribir los datos en un archivo JSON
Ya tienes los datos. Ahora, vas a escribirlos en un archivo JSON que se guardará en tu PC o Mac. Este paso es importante: tienes los datos, pero aún no están guardados en tu disco local. Puedes usar el siguiente código para escribir los datos en un archivo.
try:
to_unicode = unicode
except NameError:
to_unicode = str
with io.open('df.json', 'w', encoding='utf8') as outfile:
str_ = json.dumps(data,
indent=4, sort_keys=True,
separators=(',', ': '), ensure_ascii=False)
outfile.write(to_unicode(str_))
Antes de ejecutar esto, importa la librería io con import io.
En cuanto ejecutes este código, se escribirán en un archivo JSON los datos obtenidos con la solicitud a la API de MeetUp. Ese archivo se guardará en tu disco, concretamente en el mismo directorio que el .ipynb o el .py que estés usando.
Si usas Jupyter Notebook, deberías encontrarlo enseguida si ordenas el directorio por última modificación. Si lo prefieres, muévelo luego a una ubicación más cómoda para uso futuro.
¿Para qué sirve el archivo JSON? El JSON contiene los datos que has obtenido con la API de MeetUp. Puedes usarlos de muchas formas. Si hay valores ausentes, puedes limpiarlos con Python. Puedes construir un dataset y aplicar múltiples técnicas para hacer análisis de datos. También puedes visualizar la información y crear paneles y gráficos que muestren correlaciones dentro del conjunto de datos. Por último, un buen dataset puede emplearse para aplicar algoritmos de machine learning y construir un modelo predictivo. Estas son solo algunas ideas de lo que puedes hacer con el JSON que hemos generado desde la API de MeetUp. Tu única limitación es tu imaginación. En resumen, extraer datos de la API de un sitio web es una de las muchas vías para obtener datasets. El objetivo final es sacarles partido en análisis, modelado y visualización.
Conclusión
En resumen, usar la API de MeetUp para extraer datos implica varios pasos. Primero, encuentra e identifica tu API key; después, obtén el ID del grupo que te interese. Con esta información podrás extraer datos de cualquier grupo. Una vez hecha la solicitud, tendrás que escribirla en un archivo JSON. Saber usar APIs como herramienta es una forma útil y rentable de recopilar datos: estarás reuniendo información que podrás utilizar en futuros proyectos. Usar la API de un sitio web suele ser el método menos intrusivo frente a otras opciones como el data scraping. Una vez tengas un archivo JSON, aún queda trabajo por hacer: tendrás que limpiar los datos. Como principiante, es importante entender qué significa limpiar datos: organizar un conjunto de datos para que sus columnas y filas no tengan valores ausentes. Revisarás datos numéricos faltantes y datos categóricos (nombres, ubicaciones, etc.). Ahora ya tienes las herramientas para empezar a extraer datos con la API de MeetUp.
Antes de ponerte a trabajar con los datos solicitados a una API, tendrás que limpiarlos. Si quieres aprender cómo, no te pierdas nuestro curso Cleaning Data in Python.
Cuando uses la API de un sitio web, ten en cuenta las limitaciones impuestas sobre su uso. Los propietarios del dominio establecen estas reglas. Actúa con responsabilidad y sé consciente.
Échale un vistazo a nuestro tutorial Beginner's Guide to Google's Vision API in Python.