Como fazer scraping com o Excel?

Autor :

Reagir :

Comentário

O Excel permite extrair dados de páginas da Web sem instalar qualquer ferramenta externa. Power Query é o método mais simples: bastam alguns cliques para extrair uma tabela HTML e importá-lo diretamente para uma folha. No caso de páginas mais complexas, o VBA assume o comando e dá-te mais controlo.

Eis como fazer web scraping em ambos os casos.

Interface do Excel que mostra a extração de dados da Web através do Power Query
A extração de dados da Web para o Excel faz-se em poucos passos. ©Christina para Alucare.fr

Como extrair dados de uma página da Internet para o Excel com o Power Query?

Power Query é uma ferramenta integrada no Microsoft Excel (também conhecido como Consulta na Web (em algumas versões) que serve para importar, transformar e analisar dados da Web provenientes de várias fontes. Concretamente, podes:

  • Recuperação dados da Web a partir de um site, de um ficheiro ou de uma base de dados.
  • Limpar ou transformar esses dados antes de os analisar.
  • Carregar os dados automaticamente numa folha de cálculo para que a tua equipa possa trabalhar com informações atualizadas.

É o método mais simples para extrair dados da Web para o Excel, sem escrever uma única linha de código. Eis os quatro passos a seguir.

Etapa 1: Aceder à ferramenta de importação

Dentro Microsoft Excel, vai para o’separador «Dados», e depois clica em Obter dados e, por fim, sobre A partir da web.

Abra uma nova folha do Excel, vá a «Dados», depois a «Obter dados» e, por fim, a «Da Web».
Abra uma nova folha do Excel, vá a “Dados”, depois a “Obter dados” e, em seguida, a “Da Web”. ©Christina para Alucare.fr

Passo 2: Colar o URL da página da Internet

Cola o’URL do site ou da página que contém as informações que pretendes extrair e, em seguida, confirma.

Cole o endereço URL do site ou da página de destino no Power Query.
Cole o endereço do site ou da página de destino. ©Christina para Alucare.fr

Etapa 3: Navegar no “Navegador”

Abre-se uma janela que apresenta os tabelas detetadas. Power Query identifica automaticamente as tabelas presentes no código da página. Seleciona a tabela que te interessa, por exemplo, uma tabela HTML, para obter um conjunto de dados limpo.

Selecione a tabela ou os dados detetados no Navegador do Power Query.
Selecione a tabela ou os dados. ©Christina para Alucare.fr

Etapa 4: Carregar os dados numa folha Excel

Clique em Carregar para importar os dados diretamente para a tua folha de cálculo. Ficas rapidamente com uma tabela organizada, pronta a ser analisada.

Clique em «Carregar» para importar os dados da Web para a folha do Excel.
Carregar para importar os dados. ©Christina para Alucare.fr

Para obter as informações mais recentes do site, faz um clique com o botão direito do rato na tua tabela e, em seguida, clica em Atualizar. Desta forma, manténs os dados atualizados quase em tempo real.

O limite que deves conhecer antes de te lançares

Power Query só funciona com páginas HTML estáticas. Se a tabela não aparecer no Navegador, isso deve-se frequentemente ao facto de a página carregar o seu conteúdo em JavaScript : sites em React, Angular, ou dados que aparecem após uma deslocação.

Neste caso, tens duas opções à tua disposição. Podes direcionar diretamente o’API que o site chama em segundo plano, muitas vezes visível nas ferramentas de desenvolvimento do navegador. Caso contrário, passa para o método VBA ou a uma ferramenta específica, como Octoparse.

Como fazer scraping com VBA e macros do Excel?

VBA (Visual Basic for Applications) é a linguagem de programação integrada no Microsoft Excel e a outros programas Microsoft Office. Permite-te:

  • Automatizar tarefas repetitivas no Excel.
  • Criar macros, pequenos programas que são executados diretamente no teu ficheiro.
  • Abrir uma página da Internet, extrair texto ou tabelas e, em seguida, colá-los automaticamente no Excel.

É mais técnico do que Power Query, mas ganhas um controlo avançado : navegação entre várias páginas, gestão de uma sessão com autenticação, recolha de dados que o Power Query não deteta.

Aqui está um exemplo de macro que recupera uma tabela HTML de uma página:

Sub ScraperTableau()

 ' Declaração dos objetos
    Dim http As Object, html As Object
    Dim tabela As Object, linha As Object, célula As Object
    Dim i As Long, j As Long

 ' URL da página a ser extraída
    Dim url As String
    url = "https://www.w3schools.com/html/html_tables.asp"
 
 ' Criação de um objeto HTTP
    Set http = CreateObject("MSXML2.XMLHTTP")
    http.Open "GET", url, False
    http.Send

 ' Carregar o conteúdo HTML
    Set html = CreateObject("HTMLFile")
    html.body.innerHTML = http.responseText

    ' Seleção da primeira tabela encontrada
    Set tabela = html.getElementsByTagName("table")(0)

 ' Ciclo sobre as linhas e colunas
    For i = 0 To tabela.Rows.Length - 1
        For j = 0 To tabela.Rows(i).Cells.Length - 1
 Cells(i + 1, j + 1).Value = tabela.Rows(i).Cells(j).innerText
 Next j
    Next i

End Sub

Explicação do código:

  • Dim http como Objeto, html como Objeto : cria os objetos para gerir o pedido web e o conteúdo HTML.
  • url = "..." : o URL do site a ser rastreado.
  • http.Open "GET", url, False : envia um pedido HTTP para carregar a página.
  • html.body.innerHTML = http.responseText : insere a resposta HTML num objeto manipulável.
  • Definir tabela = html.getElementsByTagName("table")(0) : direciona-se ao primeiro quadro da página.
  • Dupla volta Para i … Para j … : lê cada célula da tabela e cola-a na célula correspondente do Excel.

Tenha em atenção uma limitação importante. Este código envia uma pedido HTTP simples via MSXML2.XMLHTTP e recupera apenas o HTML estático devolvido pelo servidor. Ele não consegue executar o JavaScript de uma página. Num site moderno que carrega os seus dados da Web de forma dinâmica, obterás um resultado vazio. Nestes casos, é necessário utilizar um navegador real, por exemplo, com Selenium e Python.

Quando utilizar o VBA para a extração de dados:

  • No páginas que exigem autenticação (nome de utilizador e palavra-passe).
  • Quando tens de recuperar várias tabelas de uma mesma página ou navegar entre várias páginas.
  • Por automatizar a recolha diária de dados através de um botão ou de um disparador programado.

Power Query vs. VBA: qual método escolher para fazer scraping com o Excel?

A escolha entre Power Query e VBA depende das tuas necessidades e da complexidade do site em questão. Aqui está uma comparação rápida para te ajudar a decidir.

Critérios Power Query VBA
Facilidade de utilização Muito simples, sem código Complexo, requer código
Flexibilidade Limitado a dados tabulares Muito flexível, controlo total
Curva de aprendizagem Fraco Elevado
Tipo de página Páginas HTML apenas estáticas Pedidos HTTP, páginas com autenticação
Casos de uso Extração velozes de quadros Automatização avançada, necessidades específicas

Na prática, Power Query continua a ser a melhor opção para principiantes e para a maioria das tarefas comuns: bastam quatro passos para importar dados da Web para Microsoft Excel, sem escrever uma única linha de código.

Escolhe VBA apenas quando tiveres uma necessidade específica que Power Query não abrange: páginas complexas, autenticação, automatização avançada. Quanto ao resto, Power Query vai fazer-te ganhar tempo.

Quais são as alternativas ao Excel para web scraping?

O Excel continua a ser prático, mas rapidamente revela as suas limitações quando se trata de grandes volumes de dados da Web. Para um projeto mais ambicioso, outras ferramentas assumem o comando. Algumas funcionam sem código, outros exigem alguns conhecimentos de programação. Também vais encontrar ferramentas gratuitas conforme as tuas necessidades.

Ferramentas «no-code» e «low-code»

Estas ferramentas permitem a recolha de dados na Web sem escrever uma única linha de código. Configuras o teu alvo através de uma interface visual e, em seguida, exportas o resultado para o formato CSV para o abrir diretamente no Excel. Isto é útil para a monitorização de marketing ou o acompanhamento de diversas fontes na Internet.

  • Bright Data : uma solução profissional, potente e concebida para as grandes necessidades de uma empresa.
  • Octoparse a web scraper sem código com uma interface simples, ideal para quem está a dar os primeiros passos e permite exportar para o Excel com apenas alguns cliques.

Interface da Bright Data, infraestrutura de recolha de dados da Web para IA e BI
A Bright Data é uma infraestrutura de dados web ilimitada para IA e BI. ©Christina para Alucare.fr

Linguagens de programação

Uma língua como Python permite-te extrair dados de sites da Internet de forma muito flexível. Podes navegar em várias páginas automaticamente, gerir os sites com autenticação e garantir uma recolha de dados que seria impossível de realizar com Power Query. Isto é particularmente útil para uma empresa que acompanha os seus concorrentes ou analisa as suas redes de distribuição.

No caso de um projeto complexo, opta pelo recolha de dados da Web com Python e BeautifulSoup. É o método mais eficaz quando a recolha de dados se torna regular ou em grande escala.

Aqui está uma comparação rápida das soluções que superam o Excel em potência, flexibilidade e simplicidade.

Ferramenta / Linguagem Custo Complexidade Poderoso
Excel (Power Query) Depende do pacote Office Fácil Básico
Excel (VBA) Gratuito (com uma licença Office) Significa Significa
Bright Data Assinatura mensal Significa Muito elevada
Octoparse Assinatura mensal Fácil Significa
Python (BeautifulSoup, Scrapy) Livre Elevado Muito elevada

Que ferramentas e recursos podem ajudar a fazer scraping com o Excel?

Para ir mais além do que Power Query e com o VBA, podes combinar o Excel com ferramentas de terceiros. Estes scrapers exportam os dados para CSV, um formato que o Excel abre diretamente. Desta forma, obténs um conjunto de dados limpo, pronto a ser analisado, sem precisares de escrever uma única linha de código.

Aqui estão duas opções úteis, consoante as tuas necessidades:

  • A extensão de raspagem da web para o teu navegador, como Web Scraper sobre Chrome Onde Firefox. É a solução ideal para extrair dados de um site com apenas alguns cliques, sem necessidade de instalações complexas.
  • a recolha de dados da Web com Python. Este método requer algum código, mas permite gerir os páginas complexas este Power Query não deteta.

Na prática, escolhe o’extensão para uma necessidade pontual e urgente. Passa para Python sempre que quiseres automatizar uma recolha regular de dados ou processar um grande volume de informação.

A raspagem da Web é legal?

a O web scraping é legal sob determinadas condições. Tudo depende dos Termos e Condições de Utilização do site, da propriedade intelectual e da utilização que fizeres dos dados recolhidos.

Na prática, os dados públicos são geralmente recuperáveis. Por outro lado, assim que se mexe em dados pessoais (nome, e-mail, perfil), introduz no campo do RGPD, mesmo que essas informações estejam disponíveis publicamente na Internet.

Antes de fazer o scraping de um site, verifica duas coisas simples:

  • O ficheiro robots.txt do site, que indica as páginas que os robôs estão autorizados ou não a explorar.
  • o condições de utilização, que, por vezes, proíbem explicitamente a recolha automatizada de dados.

Para manteres a calma, limita-te a dados não pessoais e respeite o ritmo do site para não o sobrecarregar.

👍A sua opinião
O artigo é informativo
O artigo é objetivo
O artigo responde à minha pergunta
O conteúdo está atualizado
Encontrou algum erro? Diz-nos onde!

Gostou? Partilhe-o!

Este conteúdo é originalmente em francês (Ver o editor logo abaixo). Foi traduzido e revisto em várias línguas utilizando o Deepl e/ou a API do Google Translate para oferecer ajuda no maior número possível de países. Esta tradução custa-nos vários milhares de euros por mês. Se não estiver 100 % perfeita, deixe-nos um comentário para que a possamos corrigir. Se estiver interessado em rever e melhorar a qualidade dos artigos traduzidos, envie-nos um e-mail utilizando o formulário de contacto!
Agradecemos os seus comentários para melhorar o nosso conteúdo. Se quiser sugerir melhorias, utilize o nosso formulário de contacto ou deixe um comentário abaixo. Os seus comentários ajudam-nos sempre a melhorar a qualidade do nosso sítio Web Alucare.fr


Alucare é um meio de comunicação social independente. Apoie-nos adicionando-nos aos seus favoritos do Google News:

Publicar um comentário no fórum de discussão