Voltar ao blogue
A ciência da extração de dados da Web
Anda MiuțescuLast updated on Mar 31, 202610 min read

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

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

O que surgiu primeiro? O rastreador da Web ou o extrator de dados da Web?  

Depende de como se diferencia entre extração e download. O web scraping nem sempre requer o uso da Internet. Extrair informações de um sistema local, de uma base de dados ou utilizar ferramentas de data scraping pode ser referido como recolha de dados. Por outro lado, os web crawlers são principalmente programados para fazer uma cópia de todos os sites acedidos para posterior processamento pelos motores de busca, que irão indexar as páginas guardadas e procurar rapidamente as páginas não indexadas.

Este artigo tem como objetivo explicar as diferenças e as funcionalidades comuns entre o web scraping, o crawling e tudo o que se encontra entre ambos. Como bónus, incluímos um guia detalhado sobre como criar o seu próprio web crawler, por isso continue a ler!

O que é o web scraping?

O web scraping, também conhecido como extração de dados, é o processo automatizado de recolha de informação estruturada da Internet. Este termo abrangente cobre uma vasta gama de técnicas e casos de utilização que envolvem o modus operandi do Big Data.

No nível mais básico, o web scraping refere-se à cópia de dados de um site. Em seguida, os utilizadores podem importar os dados extraídos para uma folha de cálculo, uma base de dados ou utilizar software para realizar processamento adicional.

Quem beneficia do web scraping? Qualquer pessoa que necessite de conhecimento aprofundado sobre um assunto específico. Se já se aventurou em qualquer tipo de pesquisa, o seu primeiro instinto foi provavelmente copiar e colar manualmente dados de fontes para a sua base de dados local.

Hoje em dia, os programadores podem utilizar facilmente técnicas de web scraping graças às ferramentas de automatização. O que antes levava semanas a uma equipa a concluir pode agora ser feito de forma autónoma em questão de horas, com total precisão.

A mudança do scraping manual para o automatizado poupa tempo aos utilizadores. Também proporciona uma vantagem económica aos programadores. Os dados recolhidos através da utilização de web scrapers podem ser posteriormente exportados para os formatos CSV, HTML, JSON ou XML.

Como funciona o web scraping?

Parece fácil, certo? Bem, construir um scraper do zero que consiga fazer tudo isso é demorado. Para não mencionar que o bot pode nem sempre funcionar e que terá de alugar proxies. No entanto, se ainda quiser tentar, temos alguns tutoriais que o ajudarão.

No entanto, um dos aspetos mais aliciantes de utilizar uma ferramenta pré-construída é a facilidade com que a pode incorporar no seu projeto. Tudo o que é necessário é um conjunto de credenciais e uma compreensão básica da documentação da API.

Além disso, os scrapers pré-construídos podem vir com muitos outros extras:

  • Um navegador headless incorporado para executar javascript
  • Um solucionador de Captcha
  • Um conjunto de proxies com milhões de IPs
  • Um rotador de proxies
  • Uma interface simples para personalizar pedidos

A nossa equipa desenvolveu uma API de web scraping que lhe poupará muito tempo, através de uma pesquisa exaustiva do setor e concentrando os nossos esforços na criação da solução mais vantajosa que conseguimos imaginar.

O que é o rastreamento da web?

Todos conhecemos e usamos o Google, o Bing ou outros motores de busca. Usá-los é simples — pede-lhes algo e eles procuram em todos os cantos da web para lhe fornecer uma resposta. Mas, no fim de contas, o Google prospera graças ao seu rastreador Googlebot.

Os rastreadores web são utilizados pelos motores de busca para analisar a Internet em busca de páginas de acordo com as palavras-chave que introduz e para as memorizar através da indexação, para utilização posterior nos resultados de pesquisa. Os rastreadores também ajudam os motores de busca a recolher dados de websites: URLs, hiperligações, meta tags e conteúdo escrito, bem como a inspeção do texto HTML.

Não precisa de se preocupar com o bot ficar preso num ciclo infinito de visitas aos mesmos sites, porque ele mantém um registo do que já acedeu. O seu comportamento é também determinado por uma combinação de critérios, tais como:

  • política de revisitação
  • política de seleção
  • política de deduplicação
  • política de cortesia

Os rastreadores da Web enfrentam vários obstáculos, incluindo a vasta e em constante mudança Internet pública e a seleção de conteúdos. Inúmeras informações são publicadas diariamente. Como resultado, teriam de atualizar constantemente os seus índices e filtrar milhões de páginas para obter resultados precisos. No entanto, são partes essenciais dos sistemas que examinam o conteúdo dos sites.

Como funciona o rastreamento da Web?

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

Web scraping vs. rastreamento da Web

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 crawling verifica páginas e conteúdos, o scraping garante que os dados chegam até si.

O mito de que o web scraping e o web crawling funcionam simultaneamente é um equívoco que estamos dispostos a esclarecer. O web scraping é uma técnica para extrair dados de páginas web. Quer se trate de páginas rastreadas, de todas as páginas de um determinado site ou de páginas em arquivos digitais, enquanto o web crawling pode gerar uma lista de URLs para o scraper recolher. Por exemplo, quando uma empresa pretende recolher informações de um site, irá rastrear as páginas e, em seguida, extrair as que contêm dados valiosos.

Combinar o web crawling e o web scraping leva a mais automatização e menos complicações. Através do crawling, pode-se produzir uma lista de links e, em seguida, enviá-la ao scraper para que este saiba o que extrair. A vantagem é recolher dados de qualquer lugar na World Wide Web sem qualquer intervenção humana.

Casos de utilização

O web scraping e o web crawling formam uma combinação extremamente eficaz para recolher e processar rapidamente dados que um ser humano não conseguiria analisar no mesmo período de tempo. Aqui estão alguns exemplos de como esta dupla pode ajudar nos negócios:

Proteção da marca. Pode utilizar as ferramentas para encontrar rapidamente conteúdos online prejudiciais à 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 crawler pode descobrir menções à sua empresa no ambiente online e categorizá-las para que sejam mais fáceis de compreender, tais como artigos de notícias ou publicações nas redes sociais. Adicione o web scraping para completar o processo e obter as informações.

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

Marketing por e-mail. O web scraping pode recolher websites, fóruns e secções de comentários a uma velocidade vertiginosa e extrair todos os endereços de e-mail de que necessita para a sua próxima campanha. O crawling de e-mails pode até vasculhar fóruns e grupos de chat, verificando se existem 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 investigação linguística, onde as máquinas auxiliam na interpretação das linguagens naturais utilizadas pelos humanos.

Os rastreadores e os scrapers são utilizados para fornecer enormes volumes de dados linguísticos a estas máquinas, para que ganhem experiência. Quanto mais dados forem enviados à máquina, mais rapidamente esta atingirá o seu nível ideal de compreensão. Fóruns, mercados e blogs que apresentam vários tipos de avaliações são os sites mais frequentes para obter este tipo de informação.

A Internet será capaz de treiná-la para, eventualmente, captar e reconhecer gírias, o que é crucial no marketing atual e visa atender a uma variedade de contextos.

Gestão de Ativos Imobiliários: No setor imobiliário, os web crawlers e os 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 ativos (escritórios, industrial ou retalho), o que ajuda as empresas de arrendamento a obter uma vantagem competitiva. Para contextualizar, os bots criam insights que conduzem a melhores previsões de mercado e a práticas superiores de gestão imobiliária.

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

Como criar um rastreador web

Agora que já sabe como funciona o processo, provavelmente está a perguntar-se como rastrear efetivamente sites. Criar o seu próprio crawler poupa dinheiro e é mais fácil do que possa pensar. Com base nisso, preparámos um guia detalhado sobre os pormenores, os passos a seguir e tudo o que está entre eles.

Pré-requisitos

  • Python 3.
  • IDE Python. Recomendação: neste guia, utilizaremos o Visual Studio Code, mas qualquer outro IDE serve.
  • Selenium: para extrair o HTML de sites dinâmicos.
  • Beautifulsoup: para analisar o documento HTML.
  • ChromeDriver: um driver web para configurar o Selenium. Descarregue a versão correta e lembre-se do caminho onde o guardou!

Configurar o ambiente

Primeiro, vamos instalar as bibliotecas de que precisamos. Abra um terminal no seu IDE de eleição 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 a URL que vamos rastrear e adicionamos a configuração para o Selenium. Basta criar um ficheiro 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 inspecione o HTML

Escolhemos um site de comércio eletrónico que vende produtos de desperdício zero e vamos aceder à página de cada produto e extrair o seu HTML. Por isso, vamos procurar todos os links internos no site da loja e aceder-lhes de forma recursiva. Mas primeiro, vamos dar uma olhadela à estrutura da página e certificar-nos de que não estamos a deparar-nos com quaisquer problemas de rastreabilidade. Clique com o botão direito em qualquer lugar 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 rastreador, seguiremos um fluxo recursivo para aceder a todos os links 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, irá construir o objeto BeautifulSoup que facilitará a nossa análise e chamar a função start_crawling, que dará início à navegação no site.

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)

Conforme mencionado anteriormente, a função get_page_source utilizará o Selenium para obter o conteúdo HTML do site e gravará num ficheiro de texto a secção <body>, uma vez que é esta que contém todos os links internos que nos interessam.

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 rastreador. Assim que receber o objeto BeautifulSoup, irá extrair todos os links internos. Fazemos isso utilizando 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

Isto significa que, para cada elemento HTML que encontramos, verificamos primeiro se é uma tag <a>, se tem um atributo href e, em seguida, se o valor do atributo href contém um link interno.

Depois de obtermos a lista de links, percorremos cada um deles, construímos a URL completa e extraímos o nome do produto. Com estes novos dados, temos um novo site que passamos para a função de rastreamento a partir do nosso ponto de entrada, pelo que o processo recomeça do início.

Mas e se encontrarmos um link que já visitámos? Como evitamos um ciclo infinito? Bem, para esta situação, temos a estrutura de dados unique_links. Para cada link que iteramos, verificamos se já foi acedido antes de começarmos a rastreá-lo. Se for novo, basta marcá-lo como visitado assim que o rastreamento estiver concluído.

Assim que executar o seu script, o rastreador começará a navegar pelos produtos do site. Pode demorar alguns minutos, dependendo do tamanho do site que escolher. Por fim, deverá agora ter um conjunto de ficheiros de texto que conterão o HTML de todas as páginas que o seu rastreador visitar.

Considerações finais

O rastreamento da Web e a extração de dados da Web estão fortemente interligados e influenciam o sucesso um do outro, contribuindo para a informação que é, em última análise, processada. Esperamos que este artigo o ajude a avaliar a utilização destes mecanismos interligados e os ambientes em que podem ser empregues.

A automação é o futuro da recolha de dados. Só por essa razão, criámos uma solução que lhe poupa o trabalho de escrever código, onde obtém acesso rápido a conteúdos da Web e evita bloqueios de IP. Antes de organizar o seu orçamento, porque não experimentar o nosso pacote de avaliação gratuita com proxies residenciais e móveis incluídos desde o início? Continue a extrair dados.

Sobre o autor
Anda Miuțescu, Redator de conteúdos técnicos @ WebScrapingAPI
Anda MiuțescuRedator de conteúdos técnicos

Anda Miuțescu é redatora de conteúdos técnicos na WebScrapingAPI, criando conteúdos claros e úteis que ajudam os programadores a compreender o produto e as suas funcionalidades.

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.