Hoje eu vou te mostrar como fazer web scraping com Power BI para obter dados da web de forma automática para facilitar seu trabalho!
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!
Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:
Você provavelmente já ouvir falar em Web Scraping Power BI, mas você sabe como fazer Web scraping com Power BI?
Na aula queremos te mostrar um passo a passo para trazer informações da internet com Power BI, para assim facilitar sua vida e automatizar seus trabalhos e análises!
No exemplo de hoje vamos utilizar um site de busca de imóveis então você vai poder fazer uma busca na web automática com um exemplo prático que de fato podemos utilizar!
E aí, bora aprender a buscar dados da web com Power BI para facilitar a agilizar suas análises de dados com webscraping?
0) Link
Primeiramente vamos acessar o site que vamos usar de base para trazer as informações que queremos:
1) Tabela modelo inicial
Com o link obtido, vamos, na guia Página Inicial:
A partir daqui teremos as tabelas obtidas daquele link obtido anteriormente. Devemos observar as tabelas que o Power BI conseguiu “obter” daquele site. Identificando a tabela correta, vamos marcar a tabela e clicar em Conectar dados.
Caso a tabela correta sugerida não seja carregada, siga os passos abaixo:
Assim, teremos nossa consulta/tabela criada e aberta no Power Query (editor de consultas no Power BI).
No menu aberto à esquerda, vamos renomeá-la para “Aptos” (inicialmente ela entra no Power Query com o nome original – no Exemplo foi como Tabela 5)
2) Criar parâmetro: número de páginas
Não queremos buscar informações apenas da 1ª página do site de imóveis, correto?
Para buscar as informações das outras páginas, devemos criar uma função auxiliar no Power BI. Acompanhe com a gente.
Quando trocamos de página lá no site de imóveis, outro link é gerado. Observe abaixo:
Vamos criar inicialmente uma tabela auxiliar, para receber os números das páginas até onde queremos buscar informações (de 1 até X páginas, limitadas por você). Então:
Vamos, após essas etapas, criar um parâmetro que receba o número máximo de páginas que queremos interpretar nessa consulta ao site de imóveis. Veja:
3) Criar função: pegar os links de cada página
="https://www.zapimoveis.com.br/venda/imoveis/rj+rio-de-janeiro+zona-sul+botafogo/?pagina="
& [Num Paginas] &
"&onde=,Rio%20de%20Janeiro,Rio%20de%20Janeiro,Zona%20Sul,Botafogo,,,,BR%3ERio%20de%20Janeiro%3ENULL%3ERio%20de%20Janeiro%3EZona%20Sul%3EBotafogo,-22.956712,-43.198498&transacao=Venda&tipo=Im%C3%B3vel%20usado"
Teremos o seguinte resultado:
Repare que aqui temos exatamente o que queríamos: a coluna de páginas gerando links diferentes, um para cada página. Com isso, seguiremos.
4) Adaptando nossa tabela de Aptos para ser uma função -> interpretar os links
Vamos transformar a consulta Aptos, com os passos feitos e informações que foram obtidas para a 1ª página do site de imóveis, para que ela seja genérica e consiga acessar os diversos links e páginas necessárias.
Iremos clicar em Aptos, e em Página Inicial ir em Editor Avançado.
Mudaremos o que está escrito para:
(URL)=>
let
Fonte = Web.BrowserContents(URL),
#"Tabela extraída de HTML" = Html.Table(Fonte, {{"Preço", ".simple-card__price"}, {"Endereço", ".simple-card__address"}, {"Metragem", ".js-areas:nth-last-child(4)"}, {"Quartos", ".js-bedrooms:nth-last-child(3)"}}, [RowSelector=".card-container"]),
#"Tipo Alterado" = Table.TransformColumnTypes(#"Tabela extraída de HTML",{{"Preço", type text}, {"Endereço", type text}, {"Metragem", type text}, {"Quartos", type text}})
in
#"Tipo Alterado"
5) Abrir links
Vamos agora voltar na consulta pronta de “Paginas” para utilizar a função criada. Iremos em:
Abrirá o conjunto de tabelas obtido de cada página respectiva, em cada linha, numa coluna ao lado (chamamos acima de “Links a abrir”). Você deverá clicar no ícone à direita do nome da coluna, para “abrir” as tabelas. Dessa forma:
Ao clicar em OK e excluindo as duas primeiras colunas (Num Paginas e Pagina, na imagem acima), observe o resultado:
Portanto, conseguimos buscar as informações das primeiras 15 páginas lá do site de imóveis, como queríamos lá no começo!
Caso precise substituir algum valor nulo ou erro, das colunas, vá na opção de Substituir Valores na Guia Transformar.
Agora você pode seguir para montar qualquer visualização com esses dados que sejam da sua vontade para ver os dados finais obtidos. No vídeo de aula colocamos as informações numa tabela resumida e ordenamos os valores a partir do preço dos imóveis.
Nada melhor do que um exemplo real para nossa aplicação, não é mesmo? A ideia é buscar as informações desses imóveis, como preço, metragem, endereço e quantidade de quartos.
Dessa forma você vai poder fazer suas análises de forma muito mais fácil sem precisar ficar consultando página por página dentro do site de buscas.
Na aula aprendemos como trazer informações (web scraping Power BI) de algumas páginas do site de imóveis, como proposto inicialmente.
Aprendemos passo a passo como fazer essa importação/obtenção de dados, que vai te facilitar muito!
Valeu, pessoal! Fique ligado no nosso canal do Youtube para mais conteúdo de Excel, VBA e Power BI! Um abraço!
Para acessar outras publicações de Power BI, clique aqui!
Expert em VBA e Power BI da Hashtag Treinamentos. Auxilia no suporte aos alunos da Hashtag Treinamentos e na criação de conteúdos para os que acompanham nossos canais.