CodeGym /Cursos /Python SELF PT /Extração de textos e atributos de elementos HTML com méto...

Extração de textos e atributos de elementos HTML com métodos BeautifulSoup

Python SELF PT
Nível 32 , Lição 0
Disponível

1. Introdução aos métodos de extração de texto

Hoje vamos aprender a extrair dados textuais preciosos e atributos de elementos HTML. Esqueça os facões, porque com o BeautifulSoup, trabalhar com o código pode ser comparado a um passeio por um pomar no outono, onde as maçãs estão só esperando para serem colhidas. Pronto para colher os frutos do seu aprendizado? Então vamos começar!

Os métodos de extração de texto de elementos HTML estão no topo da nossa lista. Antes de começar a extrair texto, vamos carregar a página.

Python

import requests
from bs4 import BeautifulSoup

# Carregamos o código HTML da página
url = 'https://example.com'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')

Agora temos o objeto soup, que contém a estrutura em forma de árvore do nosso documento HTML. Vamos extrair o texto de algum elemento de tag, por exemplo, um título.

Método .text e get_text()

A propriedade .text e seu equivalente - o método get_text() permitem obter o conteúdo textual de um elemento (e de todos os seus elementos aninhados).

Python

# Extraímos o texto do primeiro título h1 encontrado
h1_tag = soup.find('h1')
print(h1_tag.text) # ou h1_tag.get_text()

Experimente você mesmo: encontre outros elementos usando os métodos de procura que estudamos em aulas anteriores e extraia o texto deles. Você vai se surpreender com a quantidade de informações que pode obter!

2. Extração de valores de atributos

Textos são importantes, mas às vezes os dados mais valiosos estão escondidos nos atributos, como passaportes nos bolsos. Imagine que você precisa descobrir o endereço de um link ou obter o URL de uma imagem (e nem me pergunte por quê; talvez você queira colecionar imagens de gatinhos, quem sabe?).

Extração de valores de atributos

Suponha que temos um elemento de link <a href="https://example.com">Example</a>. Como obter o valor href? É muito simples.

Python

# Extraímos o link
a_tag = soup.find('a')
link = a_tag['href']
print("Link:", link)

Este código extraiu o valor do atributo href. Qualquer outro atributo útil, você pode extraí-lo de forma semelhante.

Vamos tentar puxar uma imagem

A extração do URL de uma imagem pode ser tão simples quanto isso. Veja o caso de <img src="image.jpg" alt="Gatinho">.

Python

# Extraímos o URL da imagem
img_tag = soup.find('img')
image_url = img_tag['src']
print("URL da imagem:", image_url)

A beleza de trabalhar com o BeautifulSoup é que ele permite encontrar e extrair dados facilmente, sem nos fazer pensar em como exatamente funciona a estrutura HTML.

3. Exemplos de extração de texto e atributos

Hora de ir para os exemplos. Vamos considerar uma tarefa um pouco mais desafiadora: extrair todos os links de uma página, juntamente com o texto dentro das tags <a>.

Exemplo: extração de todos os links com texto

Python

# Encontramos todas as tags a
a_tags = soup.find_all('a')

# Exibimos o link e texto
for a_tag in a_tags:
 link = a_tag['href']
 text = a_tag.get_text()
 print(f"Texto: {text}, Link: {link}")

Como você pode ver, o método find_all encontra convenientemente todos os elementos que atendem aos critérios de pesquisa, e o for-loop permite iterar sobre cada um deles.

4. Tratamento de erros

Não se esqueça de lidar com erros. Às vezes, a estrutura HTML pode não ser como você espera, ou o elemento pode não ter o atributo esperado. Certifique-se de que seu código não "quebre" nesses casos.

Python

# Exemplo de manipulação de erros ao extrair um atributo
try:
 link = a_tag['href']
except KeyError:
 link = None
 print("Atributo href não encontrado!")

Isso tornará o script mais robusto e ele não será interrompido por um único erro inesperado.

5. Aplicação na vida real

Em 2019, um empresário brasileiro compartilhou a história de como sua empresa, especializada em parsing de dados, alcançou um faturamento de 20 milhões de reais por ano. Ele destacou que a coleta automatizada de informações não limita a concorrência, mas, ao contrário, ajuda os negócios a se adaptarem ao mercado.

Por exemplo, um dos clientes encomendou um parser para coleta diária de estoques de produtos do site do fornecedor, o que permitiu atualizar rapidamente o portfólio e os preços na sua própria loja online. O empresário também enfatizou que, apesar das tentativas de alguns sites de dificultar o parsing, tecnologias modernas permitem contornar esses obstáculos de forma eficaz, garantindo que as empresas tenham acesso aos dados necessários para a tomada de decisões estratégicas.

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