Web Scraping com Python e BeautifulSoup: extraindo dados da web

Olá comunidade! 🩷

Vamos ver hoje um assunto bem legal! Você já se deparou com um site cheio de informações úteis, mas sem opção de download ou API?

É aí que entra o web scraping – uma técnica para extrair dados automaticamente de páginas da web.

No post desta semana, vamos aprender como usar Python com a biblioteca BeautifulSoup, além de entender as boas práticas e os cuidados legais ao realizar scraping.

O que é Web Scraping?

Web scraping é o processo de coletar informações de sites automaticamente, simulando a navegação humana. Com ele, é possível capturar listas de produtos, notícias, cotações, dados públicos e muito mais.

Siga nossa página no Linkedin e no Instagram e ajude a divulgar nosso conteúdo🥰

Ferramentas que vamos usar

  • Python 3.x
  • Requests – para fazer requisições HTTP
  • BeautifulSoup – para interpretar o HTML
  • pandas (opcional) – para organizar os dados em tabela

Instale as bibliotecas com:

pip install requests beautifulsoup4 pandas

Exemplo prático: coletando títulos de notícias

Vamos extrair os títulos da capa de notícias da página: https://g1.globo.com/

import requests
from bs4 import BeautifulSoup
import pandas as pd

# Passo 1: Requisição HTTP
url = 'https://g1.globo.com/'
response = requests.get(url)

# Passo 2: Análise do conteúdo HTML
soup = BeautifulSoup(response.text, 'html.parser')

# Passo 3: Encontrar os títulos das notícias
titulos = soup.find_all('a', class_='feed-post-link')

# Passo 4: Armazenar os títulos
lista_titulos = [titulo.get_text(strip=True) for titulo in titulos]

# Exibir os dados
df = pd.DataFrame(lista_titulos, columns=['Título da Notícia'])
print(df.head())

Com poucas linhas de código, já conseguimos extrair dados estruturados da web!

O resultado:

Boas práticas no web scraping

  1. Leia o robots.txt do site
    Exemplo: https://g1.globo.com/robots.txt. Ele define o que pode ou não ser acessado por robôs.
  2. Evite sobrecarregar o servidor
    Use time.sleep() entre requisições, especialmente em laços de scraping.
  3. Identifique seu bot
    Envie um User-Agent no cabeçalho das requisições para indicar que é um script automatizado.
  4. Respeite direitos autorais e propriedade intelectual
    Use os dados para fins educacionais ou pessoais, salvo exceções permitidas.

E os aspectos legais?

Embora web scraping seja tecnicamente simples, nem sempre é legal. Leis de proteção de dados, como a LGPD no Brasil e o GDPR na Europa, podem restringir o uso de informações pessoais. Além disso:

  • Alguns sites proíbem scraping em seus Termos de Uso.
  • Usar dados extraídos para fins comerciais pode gerar processos por violação de propriedade.

Sempre consulte a política do site e, em caso de dúvida, prefira fontes com API pública.


Conclusão

Web scraping é uma ferramenta poderosa para quem trabalha com dados e desenvolvimento.

Com BeautifulSoup e Python, é possível automatizar a coleta de informações de maneira rápida e eficiente.

Mas lembre-se: com grandes poderes vêm grandes responsabilidades. Use essas técnicas com consciência e respeito aos limites legais.

E você?

Já tentou fazer scraping de algum site? Teve dificuldades? Compartilha nos comentários! Vamos crescer juntas na programação. 🚀