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.
É 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:
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.
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:
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:
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/
Assim que você clicar em Create Sitemap, você passa a habitar a aba Sitemap filmes_lgbtq, que já te apresenta ao campo dos seletores.
Vá 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:
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:
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.
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:
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.
Apó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:
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.
O WebScraper já entendeu o que você quer selecionar como “titulo”. Para confirmar, você pode novamente consultar a Data Preview.
Salve o seletor ☺
Com essa tática, vamos seguir criando seletores dentro do seletor principal “filme”:
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.
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 ☺
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
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!
Please Post Your Comments & Reviews