CodeGym /Curso Java /Python SELF PT /Parsing de HTML com BeautifulSoup

Parsing de HTML com BeautifulSoup

Python SELF PT
Nível 31 , Lição 2
Disponível

1. Carregando e fazendo o parsing de documentos HTML

Resumo rápido das funcionalidades

A biblioteca requests — é nosso "mensageiro", que sai em busca do código HTML das páginas da web. Ela faz requisições HTTP e entrega as páginas, tipo um entregador de pizza, mas sem a "Margherita" e as caixas.

BeautifulSoup, por sua vez, é nosso "chef", que facilmente separa o HTML recebido em ingredientes (tags, atributos e texto), para que possamos usá-los. Ela nos ajuda a encontrar os elementos certos e armazenar todas as informações importantes.

Usando a biblioteca requests

Agora estamos prontos para fazer nossa primeira requisição HTTP e obter o código HTML da página. Vamos praticar carregando a página example.com. Este site é uma verdadeira relíquia da internet e perfeito para começar.

Python

import requests

url = 'http://example.com'
response = requests.get(url)

# Vamos verificar se está tudo certo
if response.status_code == 200:
    print("Página carregada com sucesso!")
else:
    print("Algo deu errado. Código de erro:", response.status_code)

Esse programa envia uma requisição para o URL e exibe o sucesso ou erro dependendo da resposta. Se tudo der certo, teremos em mãos o código HTML da página em formato de texto.

Analisando códigos de erro

Se você estiver automatizando o parsing, frequentemente irá encontrar páginas que deveriam carregar, mas não carregam. Por isso, analisar códigos de erro é essencial para projetos que fazem parsing de mais de algumas páginas.

O problema é que os donos de sites não gostam muito que seus dados sejam parseados. Primeiro, porque gera carga no site (quando milhares de páginas são parseadas ao mesmo tempo). Segundo, porque são dados deles e eles ganham dinheiro com isso. Existem muitas formas de bloquear o parsing: CAPCHA, CloudFlare, etc.

Para negócios, o ideal é conseguir parsear os concorrentes, mas dificultar que eles façam isso em você. Tipo uma guerra fria.

Usando BeautifulSoup para parsing de HTML

Tendo o código HTML, podemos começar a estudá-lo com BeautifulSoup. É como abrir um livro e ler o conteúdo:

Python

from bs4 import BeautifulSoup

# Passamos o conteúdo do código HTML para o BeautifulSoup
soup = BeautifulSoup(response.text, 'html.parser')

# Vamos dar uma olhada no que tem dentro
print(soup.prettify())

O método prettify() formata o código HTML certinho, para que você possa estudar. Na próxima aula, vamos começar a explorar esse HTML como crianças brincando em uma caixa de areia. E voltaremos para casa cansados, sujos, mas felizes. :)

3. Prática: carregando e analisando HTML

Para fixar o entendimento, vamos fazer um exercício prático. Vamos tentar extrair o título e a descrição da página example.com. Para isso, usaremos nosso conhecimento de HTML e o novo conhecimento sobre BeautifulSoup.

Extração de dados

Python

# Extraindo o título da página
title = soup.title.string
print("Título da página:", title)

# Extraindo o título principal (h1)
main_heading = soup.h1.string
print("Título principal:", main_heading)

# Extraindo o conteúdo textual de um parágrafo
paragraph = soup.find('p').text
print("Primeiro parágrafo:", paragraph)

Nesse exemplo, usamos os atributos title, h1, e o método find(), para pegar na página os pedaços de informação que queremos. Estamos nos tornando ciberdetetives, analisando pistas na cena do crime!

4. Erros comuns

Certamente, durante o trabalho com web scraping você vai se deparar com erros comuns, como lidar incorretamente com requisições HTTP, extração errada de dados ou erros no parsing do HTML. Desenvolver scripts robustos e confiáveis exige paciência e prática. Por exemplo, sempre confira o código de status (response.status_code) para ter certeza de que sua requisição foi bem-sucedida. O uso incorreto dos métodos find() e find_all() pode gerar erros se você não considerar a estrutura do HTML. Sempre analise o HTML antes de iniciar o parsing.

Web scraping tem diversas aplicações práticas: desde coleta de dados para análise até monitoramento automático de preços de produtos. Esse conhecimento pode ser útil em entrevistas, onde podem pedir exemplos de código de projetos. Na prática real, por exemplo, profissionais de marketing usam scraping para monitorar preços de concorrentes, e desenvolvedores — para integrar com sites externos.

Conhecimento sobre web scraping também será útil para processamento de informações em agregadores de notícias e sistemas analíticos. Você poderá automatizar tarefas repetitivas, criando scripts que coletam informações de várias fontes. Vamos continuar desenvolvendo nosso aplicativo virtual e nos sentir verdadeiros mestres da web!

Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION