Search
Close this search box.
Web scraping com Python
web scraping

Posts Relacionados:

Web scraping é o processo de extrair dados de sites com ferramentas de software automatizadas. Esse processo é muitas vezes essencial durante a coleta de dados para o treinamento de modelos de machine learning. Neste post, faremos uma introdução à técnica com Beautiful Soup.

Receba nossa newsletter

Bem-vindo a uma postagem introdutória sobre web scraping com Python. Web scraping é o processo de usar ferramentas de software automatizadas (muitas vezes chamadas de scrapers, bots ou crawlers) para extrair dados estruturados de sites. Ele transforma o código HTML, que renderiza a página da Web para visualização humana, em formatos de dados organizados (como planilhas ou bancos de dados).

Scraping de dados da Web é muito utilizado para monitorar preços, acompanhar postagens de mídias sociais, analisar sites de concorrentes, entre outras inúmeras aplicações. Especificamente para aplicações de machine learning, web scraping é uma ferramenta essencial para a obtenção de dados para o treinamento de modelos.

Como Web Scraping Funciona?

A realização de scraping envolve algumas etapas principais. Primeiro, é preciso identificar os sites que contêm o conteúdo desejado. Em seguida, é necessário acessar o código de HTML do site para identificar os elementos específicos (por exemplo, títulos de produtos, preços, revisões) de interesse. Por fim, os dados extraídos são organizados em formatos utilizáveis como CSV, JSON.

Web Scraping com Python e Beautiful Soup

Existem várias bibliotecas Python que podem ser usadas para realizar web scraping. Uma delas é a Beautiful Soup 4, que será o foco desta postagem. Beautiful Soup é uma biblioteca Python destinada a auxiliar programadores Python que precisam raspar dados de sites de forma rápida e sem complicações. Para usá-la, é preciso instalá-la:

				
					pip install beautifulsoup4
				
			

Também é preciso instalar a biblioteca requests para buscar páginas da Web com Python.

				
					python -m pip install requests
				
			

É importante instalar também um analisador (parser). O Beautiful Soup suporta o analisador HTML incluído na biblioteca padrão do Python, mas também suporta vários analisadores Python de terceiros. Um deles é o analisador lxml.

				
					pip install lxml
				
			

Acessando URLs

Para realizar scraping com Beautiful Soup, em um código Python, importe o módulo requests para buscar páginas da Web e o módulo BeautifulSoup de bs4 para analisar o HTML.

				
					import requests
from bs4 import BeautifulSoup 
				
			

Use requests.get(url) para obter o conteúdo HTML da URL de destino e armazená-lo em uma variável. Para esse exemplo, usaremos a página http://quotes.toscrape.com/.

				
					url = "http://quotes.toscrape.com/"
response = requests.get(url)
				
			

Em seguida, verifique se o acesso à página ocorreu com sucesso (response.status_code == 200). Em caso positivo, crie um objeto BeautifulSoup passando o conteúdo HTML recuperado e especificando o analisador HTML lxml.

				
					
if response.status_code == 200: 
    soup = BeautifulSoup(response.text, 'lxml')
    print(soup)
				
			

Imprimindo o objeto soup (parcialmente mostrado abaixo), verificamos que o conteúdo de HTML da página do nosso exemplo já está inteiramente disponível. Na etapa seguinte, será necessário especificar os elementos que queremos desse conteúdo e extraí-los.

				
					
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<title>Quotes to Scrape</title>
<link href="https://www.aprendizartificial.com/static/bootstrap.min.css" rel="stylesheet"/>
<link href="https://www.aprendizartificial.com/static/main.css" rel="stylesheet"/>
</head>
<body>
    ...
				
			

Formas de Identificação e Extração de Dados

Beautiful Soup fornece alguns métodos para encontrar e extrair elementos HTML. Entre os principais estão:

  • O comando soup.find(‘tag_name’) encontra a primeira ocorrência de uma tag específica (por exemplo, div, a, p, h1).
  • Com soup.find_all(‘tag_name’) localizamos todas as ocorrências de uma tag.
  • Já o comando element[‘attribute_name’] acessa o valor de um atributo dentro de um elemento (por exemplo, class_name, arial_label).
  • Para navegar na hierarquia de elementos HTML, usam-se métodos como element.parent, element.children e element.next_sibling.

Na prática, a localização de elementos pode ocorrer diretamente através do código HTML retornado pelo Beautiful Soup ou acessando a URL diretamente na internet. Para identificar os elementos diretamente na página da Web, clique em cada um deles com o botão direito do mouse e selecione a opção para inspecioná-lo (imagem abaixo). Ela mostrará o trecho de HTML específico para o elemento de interesse. Com isso, podemos anotar as tags ou atributos que queremos.

web scraping python

Veja um exemplo de HTML mostrando os atributos de um elemento de interesse.

web scraping html exemplo

No próximo post, faremos a extração dos elementos de uma página de exemplo para demonstração.

Imagem com IA Generativa – Dia 274

IA generativa img 274

Arte com IA generativa: imagem do dia

Todos os dias, postamos um exemplo de imagem artística gerada com inteligência artificial.

Tutoriais

Postagens Mais Recentes

Outras Postagens Que Podem Interessar

Veja
Mais

Fique em contato

Se inscreva para receber nossa newsletter com novidades.

aprendiz artificial