Curso
O MeetUp é uma rede social que permite que membros formem comunidades virtuais para organizar eventos em suas regiões. A ideia por trás do MeetUp não é nova, mas a UI e a UX têm sido bastante inovadoras nos últimos anos. As tarefas de organizar eventos específicos para uma comunidade que se reúne diariamente, semanalmente, mensalmente ou bimestralmente ficaram bem mais simples.
A API do MeetUp permite coletar dados do site diretamente. Como na maioria das APIs, muitos domínios limitam a quantidade de dados que você pode consultar. Alguns domínios não mantêm uma documentação muito atualizada da API; outros fazem um trabalho excelente para deixá-la o mais amigável possível. O MeetUp fica em algum lugar no meio. Existem várias formas de usar a API deles.
Meu uso da API do MeetUp foi para coletar dados de três grupos diferentes na região de Dallas–Fort Worth, no norte do Texas. A linguagem que usei para acessar a API no domínio do MeetUp foi Python. Dependendo do que for mais confortável para você, C++ ou Python podem dar conta do recado ao consumir a API de um site.
Se você ainda não está familiarizado com Python, confira nosso curso Intro to Python for Data Science.
Neste tutorial, você vai aprender como chamar a API do MeetUp usando Python. Vou mostrar como obter o ID de um grupo e como usar esse ID com sua API Key para fazer uma requisição e retornar os dados do grupo em formato JSON. Por fim, vou demonstrar como gravar os dados capturados em um arquivo JSON que será salvo no seu PC/Mac.
Como obter uma API Key?
No site do MeetUp, você precisa ter uma conta ativa para obter uma chave de API. Todos os usuários do site recebem uma chave. Para quem ainda não tem conta, o primeiro passo é se cadastrar no MeetUp. Depois disso, você pode obter sua API key aqui.
Você pode redefinir sua chave a qualquer momento. É importante manter sua API key em sigilo.
Primeiros passos
Primeiro, importe todas as bibliotecas Python que serão usadas no seu script .py simples.
import meetup.api
import json
import requests
import time
import codecs
import sys
import io
Instalando a API
Verifique se o meetup.api está instalado na sua máquina antes de continuar e executar este input. Um simples pip install resolve, se você estiver usando um terminal baseado em UNIX, assim:
pip install meetup.api
Se estiver usando Jupyter Notebooks, você pode instalar a biblioteca assim:
!pip install meetup.api
Isso vai instalar a biblioteca da API do MeetUp para Python.
Como Python é uma linguagem interpretada, definir variáveis e objetos é parte importante da sintaxe. Por exemplo, ao definir client, você pode escrever requisições e simplesmente usar o termo client para chamar sua API key, sem precisar digitá-la o tempo todo. Esse é um aspecto importante ao programar em Python. Primeiro, defina sua API key como client assim:
client = meetup.api.Client('API Key Here')
Definir group_info permite puxar a URL de um grupo com base no nome dele no site do MeetUp.
group_info = client.GetGroup({'urlname': 'Group Name Here No Spaces'})
Obtendo o ID de um grupo
Feito isso, você já pode chamar group_info e fazer várias requisições com ele. Digitando a linha group_info.link, a saída será a URL completa do grupo.
group_info.link
Chamando group_info.id na linha seguinte, você obtém o número de ID do grupo.
group_info.id
Você precisa do ID do grupo para avançar para a próxima etapa.
Fazendo requisições
Agora que você sabe o ID do grupo, pode fazer a requisição definindo df e inserindo o ID do grupo e a API key na URL. Isso é um request.get
df = requests.get('https://api.meetup.com/2/members?group_id=GROUP_ID&key=API_KEY')
Com df definido, você pode consultar o status_code, os headers, a codificação e ver os dados diretamente chamando o json.
Primeiro, digite df.status_code. A saída esperada para o status_code é: 200
Para os headers, digite df.headers['content-type']. Saída esperada: application/json;charset=utf-8
Para verificar a codificação, digite df.encoding. Saída esperada: utf-8
Neste ponto, seus dados definidos como df já existem. Para visualizá-los inline, digite df.json()
Gravando os dados em um arquivo JSON
Agora você já tem os dados. Em seguida, vai gravá-los em um arquivo JSON salvo no seu PC/Mac. Essa etapa é importante: você já tem os dados, mas eles ainda não estão salvos no seu disco local. Use o código a seguir para escrever os dados em um arquivo.
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 executar, importe a biblioteca io rodando import io.
No momento em que você executar esse código, ele vai escrever os dados da requisição que você fez usando a API do MeetUp em um arquivo JSON salvo no diretório do seu disco. Especificamente, no mesmo diretório do arquivo .ipynb ou .py que você estiver usando.
Se você estiver usando Jupyter Notebook, deve encontrá-lo imediatamente ao organizar o diretório por "last modified". Fique à vontade para mover o arquivo para um local mais conveniente para uso futuro.
Para que serve o arquivo JSON? Ele guarda os dados que você puxou da API do MeetUp. Dá para usar esses dados de várias maneiras. Se houver valores ausentes, você pode usar Python para limpar os dados. Você pode montar um dataset e aplicar diversas técnicas para fazer Análise de Dados. Também pode visualizar os dados e construir dashboards e gráficos mostrando correlações no conjunto. Por fim, um bom dataset pode ser usado para aplicar algoritmos de Machine Learning e construir um modelo preditivo. Esses são apenas alguns exemplos do que dá para fazer com o arquivo JSON que gravamos a partir da API do MeetUp. O único limite é a sua imaginação. Em resumo, extrair dados da API de um site é uma das muitas formas de obter datasets. O objetivo final é aproveitar bem esse dataset em análise, modelagem e visualização de dados.
Conclusão
Concluindo, usar a API do MeetUp para extrair dados envolve algumas etapas. A primeira é localizar e identificar sua API Key; a próxima é obter o ID do grupo desejado. Com essas informações, você consegue puxar dados de qualquer grupo que quiser. Depois de fazer a requisição, será preciso gravá-la em um arquivo JSON. Saber usar APIs como ferramenta é uma forma útil e econômica de coletar dados. Você estará reunindo dados com os quais poderá trabalhar em projetos futuros. Usar a API de um site geralmente é a metodologia menos intrusiva quando comparada a outras, como scraping. Depois que você tem um arquivo JSON, ainda há trabalho a fazer com ele: será necessário limpar os dados. Se você está começando, é importante entender o que é limpeza de dados: é quando você organiza um dataset para que as colunas e linhas não tenham dados faltantes. Você vai olhar para dados numéricos ausentes e dados categóricos (nomes, localidades etc.). Agora você tem as ferramentas para começar a extrair dados da API do MeetUp.
Antes de começar a trabalhar com dados obtidos de uma API, será preciso limpá-los. Se quiser aprender como, faça nosso curso Cleaning Data in Python.
Ao usar a API de um site, fique atento às limitações impostas ao uso da API. Os próprios donos do domínio definem essas regras. Pratique a autoconsciência e seja criterioso.
Confira também nosso tutorial Beginner's Guide to Google's Vision API in Python.