Web Scraping usando Ruby – Tutorial

Publicados: 2017-08-24

O notável aumento e o crescimento exponencial dos dados da web abriram novos caminhos para vários setores. Desde as unidades de fabricação até os setores de serviços, os dados são um componente essencial adotado por empresas em todo o mundo para permanecerem relevantes aos tempos em evolução. Os dados da Web não apenas contêm uma mina de ouro de informações sobre a concorrência e o mercado, mas também oferecem insights que podem ser usados ​​para melhorar processos e operações internas.

A raspagem da Web ajuda a extrair dados on-line direcionados para uso posterior pelo mecanismo de análise ou ferramenta de BI. O objetivo do web scraping permanece variado –

  • A extração de dados é uma forma eficaz de divulgar sua empresa e promover produtos/serviços
  • Usuários, consumidores e visitantes da web podem obter as informações desejadas sobre um serviço ou produto.
  • As empresas podem obter inteligência competitiva sobre as estratégias e planos implementados para aumentar sua respectiva participação de mercado.
  • As marcas podem conhecer a percepção geral em torno de sua marca por meio de interações de mídia social entre as pessoas. Isso ajuda as equipes de marketing a conceber e implantar mensagens de marketing relevantes destinadas especificamente à persona desse público, aumentando assim a probabilidade de conversão.
  • As empresas podem obter mais clareza sobre as necessidades, pontos problemáticos e preferências de seu público-alvo. Eles podem então conduzir o desenvolvimento de produtos na direção certa com essa valiosa inteligência.

Imagine os benefícios se pudéssemos estruturar os dados da web, eliminar o ruído e exportá-los para formatos legíveis por máquina. Vamos ver como isso pode ser feito usando Ruby.

Escolha do script de codificação

A extração de dados e a implementação real de práticas de raspagem na web não é uma tarefa fácil. O conhecimento elementar de CSS, HTML e o script de codificação correto facilitarão sua jornada. Sua escolha do script de codificação terá um papel crucial neste contexto. Vamos descobrir por que Ruby está criando um burburinho no mercado.

Se você está planejando lançar seu primeiro programa de web scraping, Ruby pode desempenhar o papel de uma linguagem de script confiável. Algumas razões são responsáveis ​​pela popularidade incomparável desta linguagem, e as seguintes razões irão ajudá-lo a entender por que ela é tão eficaz!

  • Um script poderoso : Ruby-On-Rails é um script altamente poderoso e eficaz para web scraping. Para iniciantes e novatos, essa linguagem em particular provou ser um forte recurso.
  • Comunidade confiável : Ruby vem junto com uma forte equipe de desenvolvedores que formam uma comunidade confiável e altamente confiável. Com milhões de documentações, nenhum problema será grande para você!
  • Fácil instalação : O procedimento de instalação está bem documentado e bastante fácil de seguir.

Esses são alguns dos fatores que fazem do Ruby uma opção indispensável para web scraping. A configuração e a instalação devem ser feitas de forma otimizada, pois esses processos são críticos para a execução dos processos de extração de dados. Aqui está um tutorial abrangente para ajudá-lo durante o processo.

O guia passo a passo

Antes de começarmos, vamos esclarecer alguns pontos. Este tutorial é destinado a usuários de Mac, se você usar uma máquina diferente, o processo de configuração inicial pode ser um pouco diferente. Em segundo lugar, o programa usa Nokogiri, que pode transformar páginas da web em 'objetos Ruby', simplificando assim o processo de raspagem da web. Com esses dois fatores em mente, você pode embarcar em seus projetos.

Neste guia, vamos raspar as manchetes das primeiras 100 listagens de carros usados ​​no olx.

O processo de configuração

Aqui estão os requisitos básicos para desenvolver uma configuração completa para extração da web usando Ruby.

  • Seu computador, seja um desktop ou laptop, deve ter Ruby nele. Se você é um leal ao Mac, metade do trabalho está feito.
  • Você vai precisar de um editor de texto. Isso é necessário para escrever os comandos do programa. Se o seu computador não tiver uma opção integrada, tente baixar o Sublime Text. Com recursos interessantes e controles interessantes, este editor de texto tornará a codificação emocionante e interessante.
  • Outro requisito é o conhecimento profundo do uso de HTML e CSS. Se você está planejando dominar a arte de web scraping, o conhecimento de CSS e HTML será crucial.
  • Conheça o Ruby. Um pouco de informação é essencial neste contexto. Você pode conferir alguns dos cursos online e melhorar sua base de conhecimento. Com esses processos e fatores implementados, será hora de começar as etapas cruciais.

Etapa 1: instalando dependências

Durante o processo de instalação, certifique-se de obter informações completas sobre as três Ruby Gems úteis. Essas três opções incluem:

  • NokoGiri
  • HTTPerty
  • Alavanca

Já que já explicamos um pouco sobre Nokogiri, vamos discutir HTTParty e Pry. HTTParty é uma jóia que nosso web scraper usará para enviar solicitações HTTP para as páginas que estamos raspando. Usaremos HTTParty para enviar solicitações GET, que retornarão todo o conteúdo HTML da página como uma string. Para depuração, usamos Pry, que é uma gema rubi. Ele nos ajudará a analisar o código da página da Web e é um componente essencial nessa configuração.

Siga os comandos abaixo e execute-os em sua máquina para instalar essas gems em seu computador.

gem instalar nokogiri

festa de instalação de gemas

instalação de gemas

Passo 2: A criação de arquivos de raspagem

Você terá que criar uma pasta chamada nokogiri_tutorial em qualquer um dos locais preferidos em seu computador. A área de trabalho é o lugar perfeito para isso. O próximo passo é baixar um editor de texto como 'Sublime Text' ou qualquer outra opção de sua preferência e salvar o arquivo nesta pasta chamada “web_scraper.RB”. Depois de concluir essas etapas, você estará pronto para trabalhar nas dependências.

Etapa 3: enviar solicitações HTTP para a página

Comece criando uma operação variável chamada 'page' e certifique-se de que seja igual à solicitação HTTParty GET da página que estamos copiando.

Neste caso: https://www.olx.in/all-results/q-cars/

Depois disso, você pode inserir “Pry. start(ligação).” Navegue e encontre a pasta marcada como um arquivo web_scraping.Rb. Salve-o imediatamente em sua área de trabalho e abra o terminal digitando este comando.

cd desktop/nokogiri_tutorial

Seu programa de web scraping está pronto para ser implementado. Você pode executar este comando e executá-lo:

Ruby web_scraper.RB

O terminal deve ser transformado em Pry, e é essencial verificar o layout antes de trabalhar em outros processos. Você pode passar para a próxima etapa. Mas, antes de fazer isso, certifique-se de digitar 'exit' no terminal escolhido, sair do Pry e retornar ao local original da pasta do programa.

Passo 4: Passando para o NokoGiri

O objetivo aqui é primeiro converter e alterar essas listagens de carros para objetos NokoGiri, pois isso é crucial para a análise. A criação de variáveis ​​é importante e você terá que desenvolver uma nova com o nome “parse_page”. Nokogiri tem uma maneira distinta de converter strings HTML em objetos Nokogiri. Você pode deixar o Pry na parte inferior do código.

O próximo passo será salvar o arquivo que contém o comando Ruby. Pry será aberto automaticamente e uma nova variável “parse_page” deverá ser inserida. Isso retornará a página Olx como um objeto Nokogiri.

Vá em frente e crie um arquivo HTML na mesma pasta com o nome 'cars.html' e copie e cole os resultados do comando parse_page neste arquivo. Esses dados HTML formatados serão úteis para referência posterior.

Antes de começar com a próxima etapa, saia do Pry em seu terminal.

Etapa 5: análise de dados

A análise de dados requer um conhecimento elementar de programação, bem como de codificação. Como você deseja extrair textos de títulos de todas as listagens de carros, o arquivo cars.html será útil na verificação cruzada. Localize os elementos cruciais da pasta e execute inspeções usando a 'ferramenta de inspeção de elementos' ou você também pode visualizar o 'código-fonte da página'.

Como descobrimos que as listagens estão dentro de uma div com o nome de classe 'content', estes são os comandos a seguir :

parse_page.css('.content')

parse_page.css('.content').css('.row').css('.hdrlnk')

cars_array

Verifique os layouts de codificação e as matrizes sempre que executar o comando. Quando a análise estiver concluída, você terá que exportar conjuntos de dados para arquivos CSV.

Etapa 6: exportar arquivos de dados para CSV

Ao chegar à etapa 6, você deve ter concluído o processo de raspagem com êxito e os dados não estruturados alterados em conjuntos de dados estruturados. Vamos agora voltar para o terminal. Saia do Pry se você ainda estiver nele para que seu terminal esteja na pasta nokogiri_tutorial que contém o programa de raspagem e o arquivo cars.html. Agora digite o seguinte comando:

toque em carros.csv

Agora você ficará com um arquivo CSV em branco no qual poderá salvar os dados de cars_array. Agora você pode escrever um script simples para gravar esses dados em nosso novo arquivo CSV e terá seus dados estruturados de listagens de carros em um arquivo CSV. Isso tornará mais fácil processar e manipular como e quando você quiser.

Pensamentos de despedida

Espero que isso tenha lhe dado uma visão geral de como você pode fazer o scraping de um site usando Ruby. É hora de explorar e rastrear sites mais complexos e desafiadores usando essa habilidade recém-dominada.