Voltar ao blogue
Guias
Suciu Dan19 de outubro de 202210 min de leitura

Web scraping com R: o guia definitivo com passos detalhados

Web scraping com R: o guia definitivo com passos detalhados

A linguagem de programação R: uma breve definição

A linguagem de programação R: uma breve definição
Captura de ecrã da página do tutorial sobre a linguagem de programação R, com uma ilustração e uma barra lateral de navegação

  Fonte da imagem:

Antes de passar à parte principal da extração de dados da Web em R, é importante adquirir alguns conhecimentos sobre programação em R. O R é uma linguagem de programação de código aberto bem conhecida, capaz de 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
  • Setor bancário
  • Comércio eletrónico
  • Finanças
  • Outros setores que utilizam grandes quantidades de dados.

Quando comparado com o SPSS e o SAS, o R é considerado uma ferramenta de análise amplamente utilizada. O seu suporte e a sua 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 do motor de recomendações
  • Google - Prever a atividade económica e, ao mesmo tempo, aumentar a eficácia 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 analisar o público-alvo. O Python apresenta uma sintaxe fácil de aprender, a par de funcionalidades de primeira linha.

Embora utilizar o R para extrair dados de uma página web possa parecer bastante intimidante à primeira vista, esta linguagem mantém o seu foco na análise estatística. Além disso, oferece um vasto conjunto de ferramentas integradas de visualização e análise de dados, o que facilita consideravelmente o trabalho de extração de dados da web, uma vez que se trata de projetos que exigem uma enorme quantidade de dados.

Web scraping em R: aspetos importantes a ter em conta

Web scraping em R: aspetos importantes a ter em conta

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

  • Compreender o Web Scraping e os Fundamentos do HTML

Quando se trata de web scraping com R, primeiro é necessário aprender e compreender os fundamentos do web scraping e do HTML. É preciso aprender a aceder ao código HTML através do navegador e familiarizar-se com todos os conceitos básicos do HTML e das linguagens de marcação. Isto irá certamente preparar o terreno para a recolha de dados.

Assim que dominar estes conceitos básicos, a extração de dados com o R tornar-se-á muito mais fácil do que imagina. Aqui estão alguns recursos que o ajudarão no trabalho de extração de dados da Web com o 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 entre si através do HTML constitui a base de todas as páginas web e da própria web. Quando se digita o endereço de 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 mais nada, é preciso compreender como é que a página web está estruturada e de que é composta. Verá que uma página web apresenta imagens e cores bonitas, mas o documento HTML subjacente é, na sua essência, bastante textual.

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

  • Etiquetas e elementos HTML

When you check the HTML code, you will come across something like <title>, </title>, <body>, </body>, and many more. These are known as HTML tags, which are special markers in the HTML document. All the stages serve an important purpose, and each of them is interpreted in a different manner by the web browser.

For instance, "<title> offers a browser with the title of the web page, and the <body> provides the browser that has the primary content of the web page. Also, tags are known to be closing and opening markers that have content in-between, or they self-close the tags by themselves. But the type of style that follows depends heavily on the use case and the stage type.

Mas as tags também incluem atributos que fornecem dados HTML adicionais e informações relevantes para a tag HTML a que pertencem. Assim que tiver uma compreensão adequada dos conceitos básicos do ficheiro HTML, das tabelas HTML, da árvore de documentos, das tags e dos elementos HTML específicos, tudo o que lhe interessa fará muito mais sentido

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 irá utilizar no projeto de web scraping para extrair toda a informação necessária.

  • Analisar uma página web com a linguagem de 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 extrair a parte superficial do conteúdo HTML; por isso, neste caso, não irá extrair os quadros de dados, mas sim apresentar o código HTML completo.

Portanto, se quiser extrair todos os elementos de uma página web e verificar como esta se apresenta, terá de utilizar o redLines() para mapear todas as linhas do conteúdo HTML num ambiente de desenvolvimento, de modo a produzir uma representação do mesmo.

Agora, tem de imprimir «flat_html», e a consola do R irá mostrar-lhe os resultados que precisa, que serão algo do género:

Captura de ecrã do código-fonte HTML que mostra uma etiqueta de título com referência ao ScrapingBee

Imagem Fonte:

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

«Quer extraia a primeira página ou apenas uma única página de um site, se o fizer corretamente, o resultado será bem-sucedido. Embora a extração de ficheiros HTML possa proporcionar 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 um exemplo para mostrar como funciona exatamente a extração de dados de navegadores web através do método de web scraping em R. O código real será muito mais complexo. No entanto, existe uma lista de bibliotecas disponíveis que simplificam consideravelmente o trabalho de web scraping em R.

Introdução ao CSS

Introdução ao CSS

Enquanto o HTML define a estrutura da URL e o conteúdo da página web, os seletores CSS fornecem informações sobre como a página deve ser formatada. Sem os seletores CSS, a página web ficaria bastante simples. Quando se trata de formatação, esta abrange uma variedade de aspetos e não se refere a um único elemento.

A estilização pode referir-se ao estilo dos elementos HTML ou ao seu posicionamento. Tal como no HTML, o âmbito dos seletores CSS é tão vasto que não é possível abordar todos os conceitos da linguagem. Mas antes de avançarmos para a extração de dados com R, deve aprofundar os seus conhecimentos sobre os ID e as classes. Nesta secção, vamos aprender sobre as classes.

Quando se criam sites numa plataforma de desenvolvimento integrada, é importante garantir que todos os componentes semelhantes do site tenham a mesma aparência. Por exemplo, pode haver elementos que aparecem na lista, e todos eles devem ter a mesma tonalidade, que é o vermelho.

Para isso, é necessário inserir o seletor CSS que contém as informações de sombreado em todas as linhas da tag HTML do texto. É assim que se faz:

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

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

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

Here, the style text shows that you're trying to apply a CSS selector to the <P> stages. In the quotes, you will come across the key-value pair known as "color:red." The color refers to the text color present in the <p> tags, and the red defines what exactly the shade should be.

A Biblioteca RVest

A Biblioteca RVest
Logótipo do pacote Harvest sobre fundo branco

   Fonte da imagem:

Tal como acontece com o seletor CSS, também é necessário 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 de páginas web. A biblioteca rvest é uma biblioteca tidyverse que funciona perfeitamente 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.

Utilização de software de API de web scraping: em que medida é que isso ajuda, exatamente?

Utilização de software de API de web scraping: em que medida é que isso ajuda, exatamente?
Secção de marketing da WebScrapingAPI que apresenta logótipos de clientes e um título sobre APIs de scraping prontas a usar

Sabe bem que, para obter os dados armazenados em diferentes sites, é imprescindível utilizar a ferramenta de web scraping adequada. Esta não só ajudará na análise posterior, como também agilizará consideravelmente 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 paga e gratuita 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, o que ajuda a garantir que os alvos sejam carregados em questão de segundos e lhe fornece uma resposta instantânea da API.

Também é possível realizar análises de sentimento e renderização em JavaScript, e o software está equipado com uma funcionalidade de deteção de bots. Além disso, o software inclui uma funcionalidade de rotação de proxies, que gere todos os proxies e realiza a rotação automaticamente.

Prós: 

  • É simples e fácil
  • O processo de registo é simples
  • Inclui a API do Amazon Scraper
  • As empresas podem utilizar a ferramenta para comparar preços, consultar dados financeiros, gerar leads, etc.

Contras:

  • É uma ferramenta paga

Extrair dados de sites com /www.webscrapingapi.com/" target="_blank" rel="noopener noreferrer">API de Web Scraping

Extrair dados de sites com a API de web scraping
Secção de marketing da WebScrapingAPI que apresenta logótipos de clientes e um título sobre APIs de scraping prontas a usar

A Internet está repleta de inúmeros conjuntos de dados que as pessoas podem utilizar nos seus projetos pessoais. Em certas ocasiões, é possível aceder facilmente a uma API e, em seguida, obter os dados através do R. No entanto, isso pode não ser sempre possível, e os dados podem não estar 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. No entanto, para realizar o trabalho de extração de dados, necessita de uma ferramenta adequada, como a Web Scraping API, para levar a tarefa a cabo. Trata-se de um software eficaz, utilizado por inúmeras empresas, que torna o trabalho de extração de dados da Web três vezes mais rápido.

Dispõe de um excelente serviço de apoio ao cliente, e a secção de preços permite-lhe escolher a opção de preço que melhor se adequa ao seu orçamento.

Adquira já a API de Web Scraping e comece a usar!

Sobre o autor
Suciu Dan, cofundador da 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.