Community Spring Cleaning week is here! Join your fellow Maveryx in digging through your old posts and marking comments on them as solved. Learn more here!
Free Trial

Blog

Insights e ideias das mentes mais brilhantes em análise de dados.
Garabujo7
Alteryx
Alteryx

Todos nós tivemos a necessidade de baixar os dados de um site, o principal problema que enfrentamos é que é um processo manual, temos que entrar no site, encontrar o arquivo correto e baixá-lo e depois prepará-lo no Excel.

 

Seria ótimo se pudéssemos automatizar o processo e até preparar os dados com um clique, não acham?

 

Não só seria, é excelente e podemos fazer isso facilmente usando o Alteryx.

 

Neste artigo irei mostrar os passos para configurá-lo e também compartilhar o fluxo finalizado para que você possa segui-lo passo a passo ou modificá-lo para usá-lo com seus dados.

 

Este é o processo completo, vou descrevê-lo passo a passo para torná-lo mais claro.

 

 

 

 

Garabujo7_0-1630082467122.png

 

 

Localização de arquivo

 

Primeiro você deve localizar onde o arquivo que deseja baixar está localizado.

 

Para este exemplo, será um arquivo com casos confirmados de coronavírus do site github.com

https://github.com/CSSEGISandData/COVID-19/blob/master/csse_covid_19_data/csse_covid_19_time_series/...

 

Como você pode ver no link acima, é um arquivo separado por vírgulas e contém semanalmente as informações de casos COVID19 verificados por país.

 

 

Garabujo7_1-1630082497460.png

 

 

Se quiséssemos ter esses dados para atualizar nossos relatórios, teríamos que entrar no site, encontrar o arquivo e baixá-lo manualmente, em seguida, alterar o formato ou intervalo no Excel para poder criar um novo relatório que inclui uma nova semana ; Este processo é trabalhoso e demorado e está sujeito a erros.

 

Para começar, baixamos o arquivo no formato CSV para usá-lo como um modelo no fluxo de trabalho que será criado posteriormente.

 

Com o Alteryx, podemos usar a poderosa e simples ferramenta Download para fazer isso automaticamente.

 

 

Garabujo7_2-1630082572706.png

 

 

Download do arquivo

 

 

Garabujo7_3-1630082581646.png

 

 

Começaremos com o arquivo que queremos baixar, para este exemplo será um arquivo com casos confirmados de coronavírus do site github.com

 

 

Garabujo7_0-1630083140706.png

 

 

A sua configuração é muito simples e requer mais dois elementos para funcionar de forma otimizada e de fácil manutenção.

 

Primeiro, exigimos uma entrada de texto onde colocaremos o endereço da página à qual queremos nos conectar e o nome do arquivo que queremos baixar.

 

 

Garabujo7_1-1630083155049.png

 

 

Um campo é adicionado para o URL e outro para o nome do arquivo.

 

 

Garabujo7_2-1630083203113.png

 

 

No download.

 

 

Garabujo7_3-1630083209693.png

 

Garabujo7_4-1630083225767.png

 

 

As configurações são selecionadas como na tela.

 

Em URL, o campo URL da entrada de texto que colocamos é selecionado.

 

Na saída, um campo é selecionado, como String.

 

Na guia de cabeçalhos.

 

 

Garabujo7_5-1630083242847.png

 

 

 

O nome do arquivo é selecionado e isso é tudo que você precisa configurar para fazer o download automático.

 

A saída do download são os cabeçalhos HTML, se funcionar deve indicar um código 200, OK:

 

 

Garabujo7_6-1630083262072.png

 

 

Se der qualquer código diferente da faixa de 200 é um erro, os erros são padrão e é devido a uma variedade de condições, para consultá-los eles podem entrar aqui:

 

https://www.restapitutorial.com/httpstatuscodes.html

 

Os dados estarão no campo DownloadData, em um único registro.

 

Garabujo7_7-1630083279182.png

 

 

Como vemos na mensagem, o campo possui novas linhas incorporadas e caracteres truncados. Para preparar isso, usaremos um bloco de Texto em Colunas.

 

 

 

Garabujo7_8-1630083286296.png

 

 

 

Selecionamos o campo DownloadData que possui o conteúdo que procuramos, pois possui novas linhas usamos o delimitador \ n com o qual dividiremos o conteúdo cada vez que houver uma nova linha.

 

A última opção a selecionar é dividir em linhas, desta forma podemos garantir que independentemente da quantidade de registros que você possui, sem especificá-los, esta opção os dividirá, independentemente de variarem a cada vez.

 

 

Garabujo7_9-1630083308625.png

 

 

Finalmente, usamos um selecionar para ocultar as colunas que não usaremos mais tarde.

 

 

 

Garabujo7_10-1630083316334.png

 

 

Ao marcar a caixa de seleção à esquerda dos campos, vamos descartar colunas que não serão úteis no processo.

 

 

 

Garabujo7_11-1630083340189.png

 

 

Contêiner

 

Garabujo7_12-1630083358091.png

 

 

Como pode ser visto no fluxo, cada processo é agrupado dentro de um contêiner, que atende a várias funções.

 

A primeira é classificar os itens do fluxo e separá-los para facilitar a manutenção e a documentação.

 

Garabujo7_13-1630083370364.png

 

A segunda é que podemos desativar os processos que estão dentro para tornar a execução mais rápida ou se for uma parte do processo que não é necessário rodar sempre.

 

 

Garabujo7_14-1630083383518.png

 

 

A terceira é que podemos simplificar o fluxo ocultando os processos que você possui ao clicar na guia à direita. Nesta opção, os blocos analíticos que estão dentro do container continuarão sendo executados.

 

 

Garabujo7_15-1630083389963.png

 

 

Preparação de dados

 

 

Pegado do giphy.comPegado do giphy.com

 

 

Garabujo7_16-1630083460274.png

 

 

A próxima etapa, uma vez que temos os dados no Alteryx, será dar a eles um formato que possamos usar para analisar, já que ele faz o download como uma página da web com tags html que não serão úteis para nós. Para isso separaremos o conteúdo em 2, de um lado, os cabeçalhos e de outro os registros que posteriormente uniremos para ter o arquivo pronto.

 

 

Garabujo7_17-1630083475450.png

Conteúdo baixado com tags HTML

 

Prepare os cabeçalhos

 

A primeira etapa é adicionar um filtro para ter todos os cabeçalhos das colunas.

 

 

Garabujo7_18-1630083500731.png

 

A condição a ser avaliada será se ele contém Province/State que é o campo para indicar que é o título de cada categoria.

 

 

Garabujo7_19-1630083532440.png

 

 

Adicionamos expressões regulares para limpar os caracteres de que não precisamos.

 

 

Garabujo7_20-1630083538333.png

 

 

 

A coluna a ser analisada é selecionada.

 

A expressão regular que fará a limpeza é colocada.

 

<\ s * [^>] *>

 

Sem entrar em grandes detalhes, o que ele faz é substituir tudo entre <> e entre [], com isso removemos as tags html e temos apenas os dados que estamos procurando.

 

Se você quiser aprender mais sobre expressões regulares e como usá-las, recomendo este curso interativo e muito simples que encontrei.

 

https://regexone.com/

 

Na Saída, o método que neste caso é substituir é selecionado para alterar esse texto e colocar um espaço.

 

 

Garabujo7_21-1630083567666.png

 

 

Antes da regex:

 

Garabujo7_22-1630083574165.png

 

Após a regex:

 

Garabujo7_23-1630083589125.png

 

 

Usamos a limpeza de dados para remover os espaços em branco no início e no final do campo.

 

 

Garabujo7_24-1630083599303.png

 

 

Garabujo7_25-1630083602982.png

 

 

Como os campos estão em uma coluna e para nosso formato exigimos que sejam títulos de colunas, temos que fazer um pivô ou girá-los, função semelhante ao que se faz no Excel com uma tabela dinâmica.

 

Para fazer isso, a primeira etapa é adicionar uma ID automática.

 

 

Garabujo7_26-1630083662464.png

 

 

Esse processo adiciona um campo de numeração automática incremental que nos permitirá girar o conteúdo, mesmo se novas colunas forem adicionadas automaticamente.

 

 

Garabujo7_29-1630083702448.png

 

 

Este bloco não precisa de configuração.

 

A tabulação cruzada é a próxima etapa.

 

 

Garabujo7_30-1630083710199.png

 

 

 

Para poder girar os dados, altere-os de colunas para linhas. Desta forma, faremos os títulos das colunas da maneira correta.

 

 

 

Pegado do giphy.comPegado do giphy.com

 

Garabujo7_31-1630084081138.png

 

 

Se seleciona o campo que permanecerá como cabeçalho, RecordID, que criamos na etapa anterior, é selecionado; os valores das colunas são os de DownloadData.

 

 

Garabujo7_32-1630084092032.png

 

 

Quando é girado, tem a seguinte aparência:

 

Garabujo7_33-1630084112854.png

 

 

Já temos os títulos das colunas prontos.

 

Agora você deve preparar o conteúdo dos registros.

 

 

Gravar conteúdo

 

Filtramos os campos que possuem a tag <td>.

 

Garabujo7_34-1630084143247.png

 

 

Garabujo7_35-1630084147909.png

 

 

Em seguida, aplicamos as mesmas três etapas do processo que usamos para os cabeçalhos.

 

Com o regex, removemos as tags html, limpamos os espaços em branco extras e adicionamos um id aos registros para uni-los novamente mais tarde.

 

 

 

Garabujo7_36-1630084345641.png

 

 

Certifique-se de que o fluxo funcione quando novas colunas diárias forem adicionadas

 

 

Garabujo7_37-1630084360451.png

 

 

Para isso, utilizaremos um resumo que obterá o último registro cada vez que for executado. Como nesta etapa as informações ainda estão em linhas, ao contar as linhas nos dará o número de colunas que o arquivo terá.

 

 

 

Garabujo7_38-1630084374660.png

 

 

Selecionamos o RecordID e a opção Último para nos dar o registro final e desta forma não importa se os registros aumentam ou diminuem, sempre teremos o número total dinamicamente.

 

 

Garabujo7_39-1630084393825.png

Garabujo7_42-1630084528650.png

 

 

 

Para utilizar esse registro, adicionaremos um append para uni-lo com o conteúdo dos registros e poder calcular um ID para transpor os dados e que o conteúdo de cada registro seja dividido corretamente.

 

 

 

Garabujo7_43-1630084584237.png

 

 

 

A única opção a ser selecionada é Permitir que todas as operações de acréscimo replicem o valor em cada um dos registros.

 

 

Garabujo7_44-1630084635018.png

Garabujo7_45-1630084640758.png

 

 

Com o valor do último registro.

 

Utilizamos uma fórmula para poder dividir o total de registros pelo número de cabeçalhos que o arquivo possui, de forma a separar o conteúdo de cada registro.

 

Para isso, usamos uma fórmula.

 

 

Garabujo7_46-1630084680107.png

 

 

Selecionamos a coluna que queremos calcular, é uma já existente.

 

Digitamos a divisão dos registros pelo total de cabeçalhos com o operador teto que se comporta da mesma forma que a função de arredondamento do Excel.

 

O resultado desta fórmula será que cada linha terá o mesmo número de identificação para que, ao girá-las, elas se fixem no lugar correto.

 

Se você deseja conhecer todas as funções disponíveis na fórmula e na descrição, pode consultar o seguinte artigo:

 

https://help.alteryx.com/current/designer/math-functions

 

Garabujo7_47-1630084736032.png

 

 

O próximo ponto necessário para acomodar os dados é adicionar uma fórmula de várias linhas que criará um ID para cada grupo de registros que acabamos de fazer com a fórmula.

 

 

Garabujo7_48-1630084768045.png

 

 

Vamos criar um novo campo; Selecionamos um agrupamento porque o número começará a cada vez que eu atingir o número de colunas que o arquivo possui, neste caso 333. Ao final é colocada a expressão que irá criar o id, neste caso é [Linha-1: Novo campo] + 1, irá adicionar um ao campo imediatamente anterior que é zero e irá zerá-lo toda vez que eu atingir o final do valor do campo que selecionamos no agrupamento.

 

Garabujo7_49-1630084788464.png

 

Garabujo7_50-1630084792378.png

 

 

Agora vamos girar os dados de maneira semelhante à que fizemos com os títulos usando uma crosstab.

 

 

Garabujo7_51-1630084807865.png

 

 

A única diferença neste caso será que iremos selecionar um campo para agrupar os valores, isto porque temos várias linhas que se repetem e desta forma serão colocadas corretamente no resultado.

 

 

 

Garabujo7_53-1630084823738.png

 

 

Agrupamos por recordID para que ele distribua os dados em cada registro de acordo.

 

Os cabeçalhos serão o conteúdo do novo campo e os valores de cada coluna o conteúdo dos dados de download.

 

Dessa forma, passamos de ter os dados em linhas para colunas.

 

A próxima etapa é ocultar o id que não será mais útil posteriormente.

 

Para isso, usaremos um bloco de seleção.

 

 

Garabujo7_54-1630084870477.png

 

 

Garabujo7_55-1630084875660.png

 

 

 

Agora que preparamos os cabeçalhos e o conteúdo do arquivo, devemos unir os dois para ter as informações completas.

 

Para isso, usaremos um bloco de junção.

 

Garabujo7_56-1630084918894.png

 

 

Selecionamos a opção Configurar automaticamente por posição para que empilhe o conteúdo de cada coluna de acordo com a ordem em que aparece no arquivo.

 

 

Garabujo7_57-1630084936754.png

 

 

O resultado da união é o seguinte:

 

 

Garabujo7_58-1630084997833.png

 

 

O conteúdo já faz sentido e está em um formato que podemos usar.

 

A única coisa que resta a fazer é renomear cada coluna que agora tem números consecutivos enquanto o nome aparece como o primeiro registro.

 

Para fazer isso, você deve trabalhar com uma mudança de nome dinâmica, que pode ser encontrada na aba do desenvolvedor.

 

 

Garabujo7_59-1630085030221.png

 

 

Com este bloco é possível alterar o nome das colunas, com a opção de Tirar nome dos campos da primeira linha de dados.

 

 

Garabujo7_60-1630085093947.png

 

 

O que deixará o arquivo no formato correto.

 

 

Garabujo7_61-1630085112458.png

 

 

Foi assim que baixamos e preparamos o arquivo que estava no formato de página da web (HTML) com o Alteryx.

 

Qual é a vantagem de fazer isso com o Alteryx?

 

  1. Pode ser automatizado
  2. É criado uma vez e pode ser executado diariamente para ter as informações atualizadas dia a dia sem modificar o fluxo original

 

Espero que este artigo seja útil para você, se você tiver alguma dúvida sobre o processo, pode perguntar nos comentários.

 

 

Pegado do giphy.comPegado do giphy.com

Comentários
Joker_Hazard
Bólide

@Garabujo7 Cara INCRIVEL artigo!!

Fiquei na duvida da aplicabilidade no meu caso, voce pode me ajudar?

https://community.alteryx.com/t5/Forum-Portugues/Ferramenta-de-Download-Site-B3/m-p/976598

Rótulos