Web Scraping vs. Web Crawling: Entenda a diferença

Anda Miuțescu em Jul 01 2021

O que é que veio primeiro? O web crawler ou o web scraper?  

Depende da diferença entre extração e descarregamento. A raspagem da Web nem sempre requer a utilização da Internet. A extração de informações de um sistema local, de uma base de dados ou a utilização de ferramentas de raspagem de dados pode ser designada por recolha de dados. Entretanto, os Web crawlers são instruídos principalmente para fazer uma cópia de todos os sítios acedidos para posterior processamento pelos motores de busca, que indexarão as páginas guardadas e procurarão rapidamente as páginas não indexadas.

Este artigo tem como objetivo explicar as diferenças e as co-funcionalidades do web scraping, do crawling e de tudo o que está entre eles. Como bónus, incluímos um guia detalhado sobre como construir o seu próprio Web crawler, por isso, continue a ler!

O que é a raspagem da Web?

A raspagem da Web, também conhecida como extração de dados, é o processo automatizado de recolha de informações estruturadas da Internet. Este termo abrangente cobre uma vasta gama de técnicas e casos de utilização que envolvem o modus operandi dos Grandes Dados.

No nível mais básico, a raspagem da Web refere-se à cópia de dados de um sítio Web. Em seguida, os utilizadores podem importar os dados extraídos para uma folha de cálculo, uma base de dados ou utilizar software para efetuar um processamento adicional.

Quem beneficia com a recolha de dados da Web? Qualquer pessoa que necessite de conhecimentos alargados sobre um determinado assunto. Se alguma vez se aventurou em qualquer tipo de investigação, o seu primeiro instinto foi, muito provavelmente, copiar e colar manualmente dados de fontes para a sua base de dados local.

Atualmente, os programadores podem utilizar facilmente técnicas de raspagem da Web graças às ferramentas de automatização. O que antes demorava semanas a ser feito por uma equipa pode agora ser feito de forma autónoma numa questão de horas com total precisão.

A passagem da recolha manual para a recolha automática permite poupar tempo aos indivíduos. Também dá uma vantagem económica aos programadores. Os dados recolhidos através da utilização de raspadores da Web podem ser posteriormente exportados para o formato CSV, HTML, JSON ou XML.

Como funciona a raspagem da Web?

imagem do blogue

Parece fácil, certo? Bem, construir um scraper a partir do 0 que possa fazer tudo isso é demorado. Já para não falar que o bot pode nem sempre funcionar e que terá de alugar proxies. No entanto, se ainda quiser tentar, temos alguns tutoriais que o vão ajudar.

No entanto, um dos aspectos mais aliciantes da utilização de uma ferramenta pré-construída é a simplicidade com que pode ser incorporada no seu projeto. Tudo o que é necessário é um conjunto de credenciais e uma compreensão rudimentar da documentação da API.

Além disso, os raspadores pré-construídos podem ser fornecidos com muitos outros acessórios:

  • Um navegador sem cabeça incorporado para executar javascript
  • Um solucionador de Captcha
  • Um pool de proxy que abrange milhões de IPs
  • Um rotador proxy
  • Uma interface simples para personalizar os pedidos

A nossa equipa desenvolveu uma API de raspagem da Web que lhe poupará muito tempo, pesquisando exaustivamente o sector e concentrando os nossos esforços na criação da solução mais vantajosa que nos foi possível imaginar.

O que é a pesquisa na Web?

Todos nós conhecemos e utilizamos o Google, o Bing ou outros motores de pesquisa. Utilizá-los é simples - pedimos-lhes algo e eles procuram em todos os cantos da Web para nos darem uma resposta. Mas, no final do dia, o Google prospera graças ao seu rastreador Googlebot.

Os Web crawlers são utilizados pelos motores de busca para procurar páginas na Internet de acordo com as palavras-chave introduzidas pelo utilizador e memorizá-las através da indexação para utilização posterior nos resultados da pesquisa. Os crawlers também ajudam os motores de pesquisa a recolher dados sobre os sítios Web: URLs, hiperligações, meta tags e conteúdo escrito, bem como a inspeção do texto HTML.

Não tem de se preocupar com o facto de o bot ficar preso num ciclo interminável de visitas aos mesmos sítios, porque ele mantém um registo do que já acedeu. O seu comportamento também é determinado por uma mistura de critérios, tais como:

  • política de revisões
  • política de seleção
  • política de desduplicação
  • política de cortesia

Os Web crawlers enfrentam vários obstáculos, incluindo a vasta e sempre em mudança Internet pública e a seleção de conteúdos. São publicadas diariamente inúmeras informações. Consequentemente, teriam de estar sempre a atualizar os seus índices e a peneirar milhões de páginas para obter resultados exactos. No entanto, são partes essenciais dos sistemas que examinam o conteúdo dos sítios Web.

Como funciona o rastreio da Web?

Os motores de busca não têm forma de saber quais as páginas web que existem. Antes de poderem obter as páginas relevantes para as palavras-chave, os robots têm de as rastrear e indexar. Aqui estão os 7 passos completos:

imagem do blogue

Web Scraping vs. Web Crawling

O Web scraping é frequentemente confundido com o web crawling. O Web scraping difere do Web crawling na medida em que extrai e duplica dados de qualquer página a que acede, enquanto o Web crawling navega e lê páginas para indexação. O rastreio verifica a existência de páginas e conteúdos, a raspagem garante que os dados chegam até si.

O mito de que o web scraping e o web crawling funcionam em simultâneo é um mal-entendido que estamos dispostos a mediar. O web scraping é uma técnica de extração de dados de páginas Web. Quer se trate de páginas rastreadas, de todas as páginas de um determinado sítio ou de páginas em arquivos digitais, o web crawling pode gerar uma lista de URLs para o scraper recolher. Por exemplo, quando uma empresa pretende recolher informações de um sítio, rastreia as páginas e, em seguida, extrai as que contêm dados valiosos.

A combinação de web crawling e web scraping leva a uma maior automatização e a menos problemas. Através do rastreio, pode produzir uma lista de ligações e depois enviá-la para o raspador para que este saiba o que extrair. A vantagem é recolher dados de qualquer ponto da World Wide Web sem qualquer trabalho humano.

Casos de utilização

A raspagem e o rastreio da Web são uma combinação extremamente boa para recolher e processar rapidamente dados que um ser humano não seria capaz de analisar no mesmo período de tempo. Eis alguns exemplos de como este conjunto pode ajudar nos negócios:

Proteção da marca. Pode utilizar as ferramentas para encontrar rapidamente conteúdos em linha prejudiciais para a sua marca (como roubo de patentes, violação de marcas registadas ou contrafação) e listá-los para que possa tomar medidas legais contra as partes responsáveis.

Monitorização da marca. A monitorização da marca é muito mais simples quando se utiliza um Web crawler. O rastreador pode descobrir menções à sua empresa no ambiente online e categorizá-las para que sejam mais fáceis de compreender, como artigos de notícias ou publicações nas redes sociais. Adicione a raspagem da Web para completar o processo e obter as informações.

Controlo de preços. As empresas utilizam o scraping para extrair dados de produtos, analisar o modo como estes afectam o seu modelo de vendas, bem como para desenvolver a melhor estratégia de marketing e vendas. Os crawlers, por outro lado, procuram novas páginas de produtos que contenham informações valiosas.

Marketing por correio eletrónico. O Web scraping pode recolher sítios Web, fóruns e secções de comentários a um ritmo alucinante e extrair todos os endereços de correio eletrónico de que necessita para a sua próxima campanha. O rastreio de correio eletrónico pode até procurar em fóruns e grupos de conversação, verificando os e-mails que estão ocultos, mas que podem ser encontrados nos cabeçalhos.

Processamento de linguagem natural. Neste caso, os bots são utilizados para a investigação linguística, em que as máquinas ajudam na interpretação das línguas naturais utilizadas pelos seres humanos.

Os "crawlers" e os "scrapers" são utilizados para fornecer grandes volumes de dados linguísticos a estas máquinas, para que possam ganhar experiência. Quanto mais dados forem enviados para a máquina, mais rapidamente esta atingirá o seu nível de compreensão ideal. Fóruns, mercados e blogues que apresentam vários tipos de críticas são os sítios mais frequentes para obter este tipo de informação.

A Internet poderá treiná-lo para aprender e reconhecer gírias, o que é crucial no marketing atual, que procura satisfazer uma grande variedade de públicos.

Gestão de activos imobiliários: No sector imobiliário, os web crawlers e scrapers são frequentemente utilizados pela sua capacidade de analisar dados e tendências de mercado. Ambos fornecem informações detalhadas sobre propriedades ou grupos específicos de edifícios, independentemente da classe de activos (escritórios, indústria ou retalho), o que ajuda as empresas de arrendamento a obter uma vantagem competitiva. Para colocar as coisas em perspetiva, os bots criam conhecimentos que conduzem a melhores previsões de mercado e a práticas superiores de gestão de propriedades.

Geração de contactos. Os anúncios e as ofertas especiais são inúteis se não chegarem às pessoas certas. As empresas utilizam crawlers e scrapers para encontrar essas pessoas, quer seja nas redes sociais ou em registos de empresas. Os bots podem encontrar e recolher rapidamente informações de contacto que serão depois enviadas para a equipa de vendas ou de marketing.

Como construir um Web crawler

Agora que já sabe como é que a roda gira, deve estar a pensar como é que se faz o rastreio de sítios Web. Construir o seu próprio rastreador poupa dinheiro e é mais fácil do que pensa. Com base nisso, preparámos um guia detalhado sobre as entradas e saídas, o modo de fazer e tudo o resto.

Pré-requisitos

  1. Python3.
  2. IDE Python. Recomendação/Neste guia, utilizaremos o Visual Studio Code, mas qualquer outro IDE serve.
  3. Selenium: para recolher o HTML de sítios Web dinâmicos.
  4. Beautifulsoup: para analisar o documento HTML.
  5. ChromeDriver: um driver da web para configurar o selenium. Descarregue a versão correta e lembre-se do caminho onde a guardou!

Configurar o ambiente

Primeiro, vamos instalar as bibliotecas de que precisamos. Abra um terminal no IDE de sua preferência e execute os seguintes comandos:

> pip install selenium
> pip install beautifulsoup4

Agora vamos importar as bibliotecas que instalámos para o nosso código Python. Também definimos o URL que vamos rastrear e adicionamos a configuração para o selenium. Basta criar um arquivo crawler.py e adicionar o seguinte:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from bs4 import BeautifulSoup

CHROMEDRIVER_PATH = "your/path/here/chromedriver_win32/chromedriver"
BASE_URL = "https://ecoroots.us"
SECTION = "/collections/home-kitchen"
FULL_START_URL = BASE_URL + SECTION

options = Options()
options.headless = True
driver = webdriver.Chrome(CHROMEDRIVER_PATH, options=options)

Escolha um site e inspeccione o HTML

Escolhemos um sítio Web de comércio eletrónico que vende produtos de desperdício zero e vamos aceder à página de cada produto e extrair o respetivo HTML. Por conseguinte, vamos procurar todas as ligações internas no sítio Web da loja e aceder-lhes recursivamente. Mas primeiro, vamos dar uma vista de olhos à estrutura da página e certificarmo-nos de que não estamos a ter problemas de rastreabilidade. Clique com o botão direito do rato em qualquer parte da página, depois em Inspecionar elemento e voilá! O HTML é nosso.

Construir o rastreador

Agora podemos começar a escrever o código. Para construir o nosso crawler, vamos seguir um fluxo recursivo para aceder a todas as ligações que encontrarmos. Mas primeiro, vamos definir o nosso ponto de entrada:

def crawl(url, filename):
page_body = get_page_source(url, filename)
soup = BeautifulSoup(page_body, 'html.parser')
start_crawling(soup)

crawl(FULL_START_URL, 'ecoroots.txt')

Implementamos a função crawl, que irá extrair os documentos HTML através do nosso procedimento get_page_source. Em seguida, construirá o objeto BeautifulSoup que facilitará a nossa análise e chamará a função start_crawling , que começará a navegar no sítio Web.

def get_page_source(url, filename):
driver.get(url)
soup = BeautifulSoup(driver.page_source, 'html.parser')
body = soup.find('body')

file_source = open(filename, mode='w', encoding='utf-8')
file_source.write(str(body))
file_source.close()

return str(body)

As stated earlier, the get_page_source function will use selenium to get the HTML content of the website and will write in a text file in the <body> section, as it’s the one containing all the internal links we are interested in.

unique_links = {}

def start_crawling(soup):
links = soup.find_all(lambda tag: is_internal_link(tag))

for link in links:
link_href = link.get('href')

if not link_href in unique_links.keys() or unique_links[link_href] == 0:
unique_links[link_href] = 0

link_url = BASE_URL + link_href
link_filename = link_href.replace(SECTION + '/products/', '') + '.txt'
crawl(link_url, link_filename)

unique_links[link_href] = 1

Esta é a lógica principal do crawler. Assim que recebe o objeto BeautifulSoup, extrai todos os links internos. Fazemos isso usando uma função lambda, com algumas condições que definimos na função is_internal_link:

def is_internal_link(tag):
if not tag.name == 'a': return False
if tag.get('href') is None: return False
if not tag.get('href').startswith(SECTION + '/products'): return False
return True

This means that for every HTML element that we encounter, we first verify if it’s a <a> tag, if it has an href attribute, and then if the href attribute’s value has an internal link.

Depois de obtermos o resumo das ligações, iteramos cada uma delas, construímos o URL completo e extraímos o nome do produto. Com estes novos dados, temos um novo Web site que passamos para a função de rastreio a partir do nosso ponto de entrada, pelo que o processo começa de novo.

Mas e se encontrarmos uma ligação que já visitámos? Como é que evitamos um ciclo interminável? Bem, para esta situação, temos a estrutura de dados unique_links. Para cada link que iteramos, verificamos se foi acedido antes de o começarmos a rastrear. Se for um novo link, então simplesmente marcamo-lo como visitado assim que o rastreio estiver concluído.

Assim que o script for executado, o rastreador começará a navegar pelos produtos do sítio Web. Pode demorar alguns minutos, consoante o tamanho do sítio Web que escolher. Por fim, deve ter um conjunto de ficheiros de texto que conterão o HTML de todas as páginas que o seu crawler visitar.

Considerações finais

O Web crawling e o Web scraping estão fortemente interligados e influenciam o sucesso um do outro, contribuindo para a informação que é finalmente processada. Esperamos que este artigo o ajude a avaliar a utilização destes mecanismos irmãos e os ambientes em que podem ser empregues.

A automatização é o futuro da recolha de dados. Só por essa razão, criámos uma solução que lhe poupa o incómodo de escrever código, onde recebe acesso rápido ao conteúdo da Web e evita bloqueios de IP. Antes de colocar o seu orçamento em ordem, porque não verificar o nosso pacote de teste gratuito com proxies residenciais e móveis incluídos desde o início? Raspar em.

Notícias e actualizações

Mantenha-se atualizado com os mais recentes guias e notícias sobre raspagem da Web, subscrevendo a nossa newsletter.

We care about the protection of your data. Read our <l>Privacy Policy</l>.Privacy Policy.

Artigos relacionados

miniatura
Ciência da recolha de dados da WebWeb Scraping facilitado: a importância da análise de dados

Descubra como extrair e organizar eficientemente dados para raspagem da Web e análise de dados através de análise de dados, bibliotecas de análise de HTML e metadados schema.org.

Suciu Dan
avatar do autor
Suciu Dan
12 min ler
miniatura
GuiasDescarregar páginas Web e ficheiros sem esforço com Python e wget

Automatize a raspagem da Web e os downloads de ficheiros com Python e wget. Saiba como utilizar estas ferramentas para recolher dados e poupar tempo.

Suciu Dan
avatar do autor
Suciu Dan
8 min. de leitura
miniatura
GuiasComo fazer um Web Crawler usando Python - Guia para iniciantes

Este tutorial demonstrará como rastrear a Web usando Python. O rastreamento da Web é uma abordagem poderosa para coletar dados da Web, localizando todos os URLs de um ou mais domínios.

Ștefan Răcila
avatar do autor
Ștefan Răcila
9 min. de leitura