Voltar ao blogue
Guias
Suciu DanLast updated on Mar 31, 202610 min read

Web scraping com R: o guia definitivo com passos detalhados

Web scraping com R: o guia definitivo com passos detalhados

O web scraping é uma técnica popular utilizada por profissionais para extrair dados de várias páginas da Web. Quando se navega na Internet, vários sites não permitem que os utilizadores guardem os dados para uso privado. É por isso que os dados são copiados e colados manualmente, e todo o processo é demorado e tedioso.

É aqui que entra o web scraping, que extrai automaticamente dados das páginas web, mas todo o processo é conduzido através de um software/ferramenta de web scraping, conhecido como «web scraper». O software irá extrair e carregar dados automaticamente das páginas web de acordo com as necessidades do utilizador.

Um web scraper pode ser personalizado para funcionar apenas num único projeto, ou pode ser facilmente configurado para funcionar com qualquer página web. O trabalho de web scraping é feito com várias ferramentas ou softwares, mas existem inúmeras linguagens de programação que são conhecidas por apoiar grandemente este processo.

Uma dessas linguagens de programação é o «R», que é considerada uma das principais linguagens de programação para web scraping. Então, quer fazer web scraping usando o R? Leia este artigo para saber como.

A Linguagem de Programação R: Uma Breve Definição

A Linguagem de Programação R: Uma Breve Definição

  Fonte da imagem:

Antes de avançar para a parte principal do web scraping em R, é importante adquirir algum conhecimento sobre a programação em R. O R é uma linguagem de programação de código aberto bem conhecida que permite extrair dados de forma fácil e eficaz. Foi apresentado pela primeira vez em 1993 e transformou-se numa plataforma de código aberto em 1995.

O "R" também teve a sua primeira versão beta em 2000, concebida por Robert Gentleman e Ross Ihaka. A linguagem R foi criada principalmente para transformar todas as ideias em software de forma fiel e rápida. Sendo uma das linguagens de programação mais difundidas, o "R" é bem conhecido entre todos os cientistas de dados, e alguns dos casos de utilização mais conhecidos desta ferramenta de extração de dados são:

  • Aprendizagem Automática
  • Banca
  • Comércio eletrónico
  • Finanças
  • Vários outros setores que utilizam grandes quantidades de dados.

Quando comparado com o SPSS e o SAS, o R é considerado uma ferramenta analítica amplamente utilizada. O seu suporte e comunidade ativa contam com cerca de 2 milhões de utilizadores. Ao analisar outras empresas que utilizam o R para a recolha de dados e a forma como o fazem, irá constatar o seguinte:

  • Trulia - Prever todos os preços das casas juntamente com as taxas de criminalidade locais
  • Facebook - Atualizar o estado e o gráfico da rede social
  • Foursquare - Utilização para o motor de recomendações
  • Google - Previsão da atividade económica e também melhoria da eficiência da publicidade online.

No entanto, em comparação com outras linguagens, o «R» está atualmente a competir com o Python. Isto deve-se ao facto de ambas possuírem comunidades ativas e oferecerem ferramentas de web scraping. Mas irá certamente perceber a diferença quando verificar o público-alvo. O Python possui uma sintaxe fácil de aprender, juntamente com funcionalidades de primeira linha.

Embora usar o R para web scraping de uma página web possa parecer bastante intimidante à primeira vista. Esta linguagem mantém o seu foco na análise estatística. Também oferece um vasto conjunto de ferramentas integradas de visualização e análise de dados, o que facilita muito o trabalho de web scraping, uma vez que se trata de projetos que requerem uma enorme quantidade de dados.

Web Scraping em R: Aspectos Importantes a Ter em Conta

Web Scraping em R: Aspectos Importantes a Ter em Conta

Quando decidir fazer web scraping em R, há alguns aspetos que deve compreender.

  • Compreender os fundamentos do Web Scraping e do HTML

Quando se trata de web scraping com R, primeiro tem de aprender e compreender os fundamentos do web scraping e do HTML. Tem de aprender a aceder ao código HTML através do navegador e a verificar todos os conceitos subjacentes do HTML e das linguagens de marcação. Isto irá certamente definir o caminho para extrair dados.

Assim que conhecer estes conceitos básicos, o scraping com R tornar-se-á muito mais fácil do que imagina. Aqui estão os seguintes pontos que o ajudarão no trabalho de web scraping com R.

  • Noções básicas de HTML

Desde que foi proposta pela primeira vez por Tim Berners-Lee no final dos anos 80, a ideia de uma plataforma de documentos [a World Wide Web] interligados através do HTML constitui a base de todas as páginas web e da própria web. Quando digita um site no navegador, este descarrega e apresenta a página.

Mas como é que se faz exatamente o web scraping com o R? Bem, antes de fazer qualquer coisa, tem primeiro de aprender como é que a página web está estruturada e de que é composta. Verá que uma página web tem imagens e cores bonitas, mas o documento HTML subjacente é de natureza bastante textual.

O documento HTML é a representação técnica de uma página web, pois indica aos navegadores quais os elementos HTML que devem ser apresentados e como exatamente devem ser apresentados. O documento HTML é algo que precisa de analisar e compreender se deseja extrair dados de uma página web com sucesso.

  • Etiquetas e elementos HTML

Ao verificar o código HTML, irá deparar-se com algo como <title>, </title>, <body>, </body> e muitos mais. Estes são conhecidos como tags HTML, que são marcadores especiais no documento HTML. Todas as tags têm uma finalidade importante e cada uma delas é interpretada de forma diferente pelo navegador.

Por exemplo, "<title>" fornece ao navegador o título da página web, e "<body>" fornece ao navegador o conteúdo principal da página web. Além disso, as tags são conhecidas por serem marcadores de abertura e fecho que contêm conteúdo entre si, ou fecham-se automaticamente. Mas o tipo de estilo que se segue depende fortemente do caso de uso e do tipo de elemento.

Mas as tags também vêm com atributos que oferecem dados e informações HTML adicionais, relevantes para a tag HTML a que pertencem. Assim que adquirir um conhecimento adequado do conceito principal do ficheiro HTML, das tabelas HTML, da árvore de documentos, das tags e de elementos HTML específicos, tudo fará muito mais sentido em todas as partes que lhe interessam

Então, qual é a principal lição a reter aqui? Bem, a página HTML é vista como um formato estruturado associado a uma hierarquia de tags, que o rastreador utilizará no projeto de web scraping para extrair toda a informação necessária.

  • Analisar uma página web com programação R

Agora, é hora de realizar o web scraping numa página web de destino com o R. Lembre-se de uma coisa: irá apenas raspar a superfície do conteúdo HTML; portanto, aqui, não irá extrair os data frames, mas sim imprimir o código HTML completo simples.

Portanto, se quiser fazer web scraping de todos os elementos de uma página web e verificar como ela aparece, precisa de usar redLines() para mapear todas as linhas do conteúdo HTML dentro de um ambiente de desenvolvimento, a fim de produzir uma representação do mesmo.

Agora, precisa de imprimir «flat_html», e a consola do R irá mostrar-lhe os resultados de que necessita, que serão algo como isto:

Fonte da imagem:

Lembre-se claramente de uma coisa: a extração de sites é feita apenas por diversão, e todos os especialistas em ciência de dados estão bem cientes disso. Será certamente uma experiência emocionante, e pode facilmente extrair várias páginas de um site, como o site IMDB, no seu sistema operativo.

Quer extraia a primeira página ou uma única página de um site, se o fizer corretamente, será um sucesso. Embora a extração de ficheiros HTML possa proporcionar-lhe um resultado impressionante, não se trata de um documento HTML. Isto porque a função redLines() lê o documento corretamente, mas não tem em conta a estrutura do documento.

Mas isto é apenas uma ilustração para mostrar exatamente como é a extração de navegadores web através do método de web scraping em R. O código real a seguir será muito mais complicado. Mas existe uma lista de bibliotecas disponíveis, que simplificará bastante o trabalho de web scraping em R.

Conhecer o CSS

Conhecer o CSS

Assim como o HTML pode fornecer a estrutura de URL e o conteúdo da página web, os seletores CSS oferecem informações sobre como a página web deve ser estilizada. Sem a presença de seletores CSS, a página web parecerá bastante simples. Quando se trata de estilização, isso refere-se a uma gama diversificada de coisas, mas não a um único elemento.

O estilo pode referir-se à cor dos elementos HTML ou ao seu posicionamento. Tal como o HTML, o âmbito dos seletores CSS é tão vasto que não é possível abranger todos os conceitos da linguagem. Mas antes de avançar para o scraping com R, deve aprender mais sobre os IDS e as classes. Nesta secção, vamos aprender sobre as classes.

Quando cria websites num ambiente de desenvolvimento integrado, quer garantir que todos os componentes semelhantes do website tenham a mesma aparência. Por exemplo, pode encontrar elementos que aparecem numa lista, e todos eles devem ter a mesma cor, que é o vermelho.

Assim, para conseguir isso, tem de inserir o seletor CSS que contém a informação da cor em todas as linhas da tag HTML do texto. É assim que se faz:

<p style= "color:red" >Texto 1</p>

<p style= "color:red" >Texto 2</p>

<p style= "color:red" >Texto 3</p>

Aqui, o texto de estilo mostra que está a tentar aplicar um seletor CSS às etapas <P>. Entre aspas, encontrará o par chave-valor conhecido como "color:red". A cor refere-se à cor do texto presente nas tags <p>, e o vermelho define exatamente qual deve ser a tonalidade.

A Biblioteca RVest

A Biblioteca RVest

   Fonte da imagem:

Tal como o seletor CSS, também precisa de ter um bom conhecimento do pacote rvest, que é um pacote r importante para trabalhos de web scraping. A biblioteca rvest, mantida pelo conhecido Hadley Wickham, é uma biblioteca específica que permite a todos os utilizadores recolher ou extrair conjuntos de dados através das páginas web. A biblioteca rvest é uma biblioteca tidyverse que funciona na perfeição com todas as outras bibliotecas presentes num pacote. Diz-se que o pacote Rvest se inspira na biblioteca de web scraping do Python chamada Beautiful Soup.

Utilizar software de API de web scraping : como é que isso vai ajudar exatamente?

Utilizar software de API de web scraping: como é que isso vai ajudar exatamente?

Sabe bem que, para obter os dados armazenados em diferentes sites, é obrigatório utilizar a ferramenta de web scraping adequada. Esta não só ajudará na análise posterior, como também acelerará significativamente o trabalho de web scraping. Por falar em ferramentas de web scraping, a Web Scraping API é atualmente uma das melhores do mercado.

O software está disponível em versões pagas e gratuitas e funciona perfeitamente em vários navegadores, incluindo o Google Chrome. Quando se trata de cenários comuns de web scraping, como «extrair dados da Wikipédia com R» ou «transferir ficheiros via FTP com R», pode utilizar este software específico.

Existem mais de 10 000 empresas que utilizam a WebScrapingAPI para extrair mais de 50 milhões de dados por mês. O software foi concebido com tecnologia de ponta que ajuda a garantir que os alvos sejam carregados em questão de segundos e fornece uma resposta instantânea da API.

Também pode realizar análises de sentimento e renderização JavaScript, e o software está equipado com uma funcionalidade de deteção anti-bot. Além disso, o software inclui uma funcionalidade de proxy rotativo, que gere todos os proxies e também realiza a rotação automaticamente.

Prós: 

  • É simples e fácil
  • Tem um processo de registo fácil
  • Vem com a API Amazon Scraper
  • As empresas podem utilizar a ferramenta para comparação de preços, dados financeiros, geração de leads, etc.

Contras:

  • É uma ferramenta paga

Extrair dados de sites com a API de Web Scraping

Extrair dados de sites com a API de Web Scraping

A Internet está repleta de inúmeros conjuntos de dados que as pessoas podem utilizar para os seus projetos pessoais. Em certas ocasiões, as pessoas podem aceder facilmente à API e, em seguida, solicitar os dados através do R. Mas isso pode ser possível apenas em alguns casos, e não irá obter os dados num formato limpo. É aqui que entra o web scraping.

Esta técnica irá ajudá-lo a obter os dados que pretende analisar, localizando-os no código HTML do site. Mas para realizar o trabalho de scraping, precisa de uma ferramenta adequada, como a API de Web Scraping, para realizar o trabalho. Este é um software eficaz que é utilizado por inúmeras empresas e torna o trabalho de web scraping 3 vezes mais rápido.

Possui um excelente sistema de apoio ao cliente, e a secção de preços permite-lhe escolher a opção de preço de acordo com o seu orçamento.

Adquira já a Web Scraping API e comece a trabalhar!

Sobre o autor
Suciu Dan, Co-fundador @ WebScrapingAPI
Suciu DanCo-fundador

Suciu Dan é cofundador da WebScrapingAPI e escreve guias práticos, voltados para programadores, sobre web scraping em Python, web scraping em Ruby e infraestruturas de proxy.

Comece a construir

Pronto para expandir a sua recolha de dados?

Junte-se a mais de 2.000 empresas que utilizam a WebScrapingAPI para extrair dados da Web à escala empresarial, sem quaisquer custos de infraestrutura.