Copia-e-cola é coisa do passado, a moda agora é, é raspar os seus dados

Nossos alunos do MBA em Jornalismo de Dados produziram uma série de tutoriais como trabalho final na disciplina Low Code: Transformando dados em pautas sem programar, ministrada pelo professor Adriano Belisário. Este mês você poderá conferir alguns dos trabalhos e se aventurar com os tutoriais elaborados por eles. Hoje você confere o tutorial feito por Carolina Timm.

Web Scraper: um tutorial com início, meio e fim de um exercício de raspagem + dicas práticas

Olá, pessoal. Cansou de passar horas copiando e colando informações que claramente poderiam estar em uma tabela pronta para baixar e não soltas em um site?
Você gostaria de ter um jeito simples de coletar todas as informações que você precisa de uma vez só? Que tal uma tabela com dados estruturados à sua escolha extraída ao final da coleta?
Pois então, descansa, o que você procura se chama raspagem de dados, um método de coleta de informações de forma automatizada.  Aqui, vamos aprender sobre uma ferramenta em especial: Web Scraper


Por que ler este tutorial? 

Ao final da leitura, você saberá como instalar e utilizar o Web Scraper para criar algo chamado Sitemap contendo Selectors capazes de navegar de forma autônoma e extrair informações como você determinar. Para nos guiar neste tutorial, vamos realizar a raspagem do Rotten Tomatoes (um site de crítica de filmes e séries), mais especificamente de um conteúdo intitulado 200 Best LGBTQ+ Movies of All Time


Contextualizando o site escolhido

Os dados que interessam neste tutorial estão nesta url.

Repare que o ranking está distribuído ao longo de quatro páginas de resultados, nesta ordem de apresentação: 200-151; 150-101; 100-51; 50-1. Na página inicial, estão informações básicas: pôster do filme, título, ano de lançamento, avaliação (o “tomatômetro” clássico do site) se há consenso da crítica, sinopse, elenco e posição no ranking. 

C:UsersuserDesktopMBA IDP Jornalismo de DadosAulasLow Code - Dados e PautasWeb Scraperprintsprint - ranking página inicial rotten tomatoes.png

É possível localizar e ler o conteúdo no site, mas os elementos não estão organizados de uma forma estruturada que permita fácil extração, manuseio e análise dos dados ali disponíveis. Sem um raspador, seria necessário organizar os elementos de forma manual, repetindo 200 vezes (literalmente)o processo de selecionar cada informação de cada filme. Ou seja, seria uma tarefa repetitiva e demandaria tempo. Por isso, a partir daqui vamos de mãos dadas com uma ferramenta chamada Web Scraper

Conhecendo o Web Scraper

webscraper.io é uma extensão gratuita e que você pode instalar em seu navegador em poucos minutos. À primeira vista, antes da instalação, é assim que ela se parece: 

C:UsersWindows 10Desktopprint - site web scraper add to chrome.png

Basta clicar em Adicionar a extensão ao seu navegador e autorizar a permissão de acesso. Para conferir se a instalação foi efetiva, vá até Extensões e confira se o ícone e o nome do Web Scraper já aparecem por lá. 


Passo a Passo

Primeiro, instale o Web Scraper no seu navegador.
Acesse o Roten Tomatoes

Em qualquer ponto da página, clique com o botão direito e vá em Inspecionar. 

C:UsersuserDesktopMBA IDP Jornalismo de DadosAulasLow Code - Dados e PautasWeb Scraperprintsprint - botão direito inspecionar.png

Se a seção abrir na lateral do seu navegador, recomendo que você transfira para a parte inferior. Para isso, basta clicar nos três pontinhos no canto direito e optar pelo ícone que ilustra essa forma de visualizar:

C:UsersuserDesktopMBA IDP Jornalismo de DadosAulasLow Code - Dados e PautasWeb Scraperprintsprint - botão direito pra baixo.png

Em seguida, localize a aba Web Scraper no final da primeira linha.
Ao clicar nela, a extensão exibe três conteúdos:
>Sitemaps, onde são “guardados” os sitemaps criados ou importados no seu navegador (neste momento, logo após a instalação, esta aba estará vazia);
>Sitemap, espaço do Sitemap “atual”; 
>Create new sitemap, que traz duas opções: 

C:UsersuserDesktopMBA IDP Jornalismo de DadosAulasLow Code - Dados e PautasWeb Scraperprintsprint - create new sitemap.png

Create Sitemap é a opção que nos interessa neste momento. Após clicar nela, você deve preencher dois campos e finalizar clicando em Create Sitemap.
>Sitemap name: o nome que passará a identificar o seu Sitemap. Deve conter somente letras minúsculas, sem acentos e sem espaços. Aqui, se chama filmes_lgbtq
>Start URL: copie e cole a URL da página: https://editorial.rottentomatoes.com/guide/best-lgbt-movies-of-all-time/ 

C:UsersuserDesktopMBA IDP Jornalismo de DadosAulasLow Code - Dados e PautasWeb Scraperprintsprint - sitemap name start url.png

Assim que você clicar em Create Sitemap, você passa a habitar a aba Sitemap filmes_lgbtq, que já te apresenta ao campo dos seletores. 

C:UsersuserDesktopMBA IDP Jornalismo de DadosAulasLow Code - Dados e PautasWeb Scraperprintsprint - webscraper add new selector.pngVá Clique em Add new selector. O primeiro seletor que vamos criar vai reunir todas as informações que acompanham cada um dos filmes: pôster do filme, título, ano de lançamento, avaliação do site, sinopse enxuta, elenco e posição no ranking. Aqui, ele será chamado de filme. Em Type, você vai estar diante de diversas opções: 

C:UsersuserDesktopMBA IDP Jornalismo de DadosAulasLow Code - Dados e PautasWeb Scraperprintsprint - webscraper selector filme element.png


O nosso seletor é Element. Abaixo, marque o quadrado Multiple, pois queremos que o seletor siga navegando pelos demais filmes e selecionando o padrão de informações que indicamos pra ele: 

D:Web Scraperprintsprint - webscraper selector filme.png

Para selecionar, clique em Select. Aí, basta passar o cursor pela página até que todos os elementos do primeiro filme estejam selecionados (pôster, título, ano e assim por diante). Em seguida, desça pela página e faça essa mesma seleção no filme logo abaixo. Pronto, a essa altura, o Web Scraper já entendeu a sua ideia e vai selecionar os próximos nesta página.

C:UsersuserDesktopMBA IDP Jornalismo de DadosAulasLow Code - Dados e PautasWeb Scraperprintsprint - webscraper seletor filme multiple.png


Confirme a ação clicando em Done selecting. Confira se Multiple está confirmado e salve. Já temos o nosso primeiro seletor o/
A partir de agora, vamos criar seletores dentro deste seletor principal para cada uma das informações que nos interessam. 

Contudo, antes disso, parênteses: se você clicar em Data Preview e conferir as informações, notará que apenas os filmes da primeira página foram selecionados. Ué, então preciso criar um Sitemap diferente para cada uma das quatro páginas e juntar tudo num editor de planilhas depois de exportar? Não, a boa notícia é que não precisa desse trabalho todo. Basta alterar a URL

Clique nas demais páginas do ranking, uma por uma, e observe a URL de cada uma. Reparou como a mudança é o número ao final?
https://editorial.rottentomatoes.com/guide/best-lgbt-movies-of-all-time/2/
https://editorial.rottentomatoes.com/guide/best-lgbt-movies-of-all-time/3/
https://editorial.rottentomatoes.com/guide/best-lgbt-movies-of-all-time/4/

Em Sitemap filmes_lgbtq, você terá essas alternativas:

C:UsersuserDesktopMBA IDP Jornalismo de DadosAulasLow Code - Dados e PautasWeb Scraperprintsprint - aba sitemap.png

Escolha Edit metadata.
Em Start URL, vamos alterar para https://editorial.rottentomatoes.com/guide/best-lgbt-movies-of-all-time/[1-4] Assim, as quatro páginas serão raspadas. 

C:UsersuserDesktopMBA IDP Jornalismo de DadosAulasLow Code - Dados e PautasCarolina Timm - Tutorial Low Codeprintsprint - save sitemap metadata.pngApós salvar essa alteração, novamente clique em Sitemap filmes_lgbtq e volte para Selectors. Agora, ao invés de adicionar um novo seletor “principal”, vamos criar seletores dentro do seletor já criado. Para isso, clique em filme: 

D:Web Scraperprintsprint - adicionar seletor dentro de seletor filmes.png

Repare que agora ele está indicado ao lado de _root na parte superior. Agora sim, Add new selector. Vamos começar selecionando o título? O Type agora é Text e você não precisa mais selecionar a opção Multiple, afinal, só tem um título dentro do nosso seletor principal “filme”. Com o cursor, selecione apenas a informação do título do filme e repita essa mesma seleção com o filme abaixo. 

D:Web Scraperprintsprint - webscraper seletor titulo.png

O WebScraper já entendeu o que você quer selecionar como “titulo”. Para confirmar, você pode novamente consultar a Data Preview.

D:Web Scraperprintsprint - webscraper datapreview.png

Salve o seletor ☺

Com essa tática, vamos seguir criando seletores dentro do seletor principal “filme”:  

C:UsersuserDesktopMBA IDP Jornalismo de DadosAulasLow Code - Dados e PautasWeb Scraperprintsprint - seletores dentro do seletor principal filme.png

Um seletor para cada informação: titulo, ano, pôster, ranking, elenco, sinopse e avaliação. Todos eles serão Type Text? Hum, quase. A única exceção é o pôster, que será Type Image

C:UsersuserDesktopMBA IDP Jornalismo de DadosAulasLow Code - Dados e PautasWeb Scraperprintsprint - seletor imagem.png

Todos os seletores já foram criados por aí? Ótimo!

Em Sitemap filmes_lgbtq, agora olhe para a opção Scrape. Sim, é esse botão que faz a raspagem acontecer de forma automatizada. Sem precisar alterar os campos sobre a velocidade, ao clicar em Start Scraping, a extensão abrirá uma nova janela e nela fará a coleta dos dados a partir dos seletores criados. Não feche a janela com o ícone do Web Scraper, apenas deixe acontecer ☺ 

C:UsersuserDesktopMBA IDP Jornalismo de DadosAulasLow Code - Dados e PautasWeb Scraperprintsprint - webscraper após scrape.png


Após a notificação do fim da raspagem, na aba Sitemap filmes_lgbt, você pode extrair as informações em formato csv > Export data as csv
Após exportada, assim estará a sua planilha

C:UsersuserDesktopMBA IDP Jornalismo de DadosAulasLow Code - Dados e PautasCarolina Timm - Tutorial Low CodeprintsFigura20.png

Além disso, você também pode exportar o próprio Sitemap, que será gerado assim: 

{“_id”:”filmes_lgbtq”,”startUrl”:[“https://editorial.rottentomatoes.com/guide/best-lgbt-movies-of-all-time/[1-4]”],”selectors”:[{“id”:”filme”,”type”:”SelectorElement”,”parentSelectors”:[“_root”],”selector”:”div.countdown-item:nth-of-type(n+2)”,”multiple”:true,”delay”:0},{“id”:”titulo”,”type”:”SelectorText”,”parentSelectors”:[“filme”],”selector”:”h2 a”,”multiple”:false,”regex”:””,”delay”:0},{“id”:”ano”,”type”:”SelectorText”,”parentSelectors”:[“filme”],”selector”:”span.subtle”,”multiple”:false,”regex”:””,”delay”:0},{“id”:”poster”,”type”:”SelectorImage”,”parentSelectors”:[“filme”],”selector”:”img”,”multiple”:false,”delay”:0},{“id”:”ranking”,”type”:”SelectorText”,”parentSelectors”:[“filme”],”selector”:”div.countdown-index”,”multiple”:false,”regex”:””,”delay”:0},{“id”:”elenco”,”type”:”SelectorText”,”parentSelectors”:[“filme”],”selector”:”div.cast”,”multiple”:false,”regex”:””,”delay”:0},{“id”:”sinopse”,”type”:”SelectorText”,”parentSelectors”:[“filme”],”selector”:”div.synopsis”,”multiple”:false,”regex”:””,”delay”:0},{“id”:”avaliação”,”type”:”SelectorText”,”parentSelectors”:[“filme”],”selector”:”span.tMeterScore”,”multiple”:false,”regex”:””,”delay”:0}]}

A título de curiosidade, é esse conteúdo que você cola na opção Import Sitemap quando quiser consultar este Sitemap em outro navegador ou compartilhar para que outros usuários possam acessar. 

Essa é a nossa linha de chegada. Boas práticas e vida longa com o Web Scraper!

https://media.tenor.com/images/ff4d08553f058aadb6e49b93e120f522/tenor.gif