1. Produtos
  2.   HTML
  3.   Python
  4.   Beautiful Soup
 
  

Biblioteca Python de Código Aberto para Analisar HTML/XML e Extrair Dados

Beautiful Soup é uma Biblioteca Python de Código Aberto Líder que Analisa HTML/XML Confuso, Extrai Texto/Links, Navega na Árvore e Impulsiona Fluxos de Trabalho Modernos de Raspagem Web.

O que é Beautiful Soup?

O web scraping se tornou uma habilidade essencial para cientistas de dados, desenvolvedores e pesquisadores que precisam extrair informações valiosas de sites. Beautiful Soup é uma das bibliotecas Python mais populares e fáceis de usar para analisar documentos HTML e XML. Desde sua criação em 2004, esta poderosa ferramenta tem economizado inúmeras horas dos programadores em projetos de web scraping. A API intuitiva da biblioteca, sua excelente documentação e o suporte ativo da comunidade garantem que tanto iniciantes quanto desenvolvedores experientes possam extrair dados da web de forma eficiente.

Beautiful Soup é uma biblioteca Python projetada especificamente para extrair dados de arquivos HTML e XML. É uma poderosa biblioteca Python que tem economizado horas ou dias de trabalho dos programadores em projetos de raspagem de dados desde 2004. Com apenas algumas linhas de código, você pode executar consultas complexas, como simplicidade e facilidade de uso, encontrar todos os links, extrair conteúdo de texto, conversão automática de codificação, flexibilidade do analisador, tratamento robusto de erros, pesquisa e extração de links de páginas da web e muito mais.

A biblioteca Beautiful Soup transforma a tarefa frequentemente frustrante de extrair dados de documentos HTML e XML em um processo Pythonic direto, convertendo conteúdo web mal estruturado em árvores de análise organizadas que você pode navegar e pesquisar com métodos simples. O que tradicionalmente levaria horas de codificação manual pode ser realizado em minutos com o Beautiful Soup. Ela continua sendo o padrão da indústria para desenvolvedores Python que ingressam no mundo da raspagem de dados. Sua simplicidade, combinada com o poder de diferentes analisadores, a torna uma escolha imbatível para extrair dados de sites estáticos.

Previous Next

Começando com Beautiful Soup

A maneira recomendada e mais fácil de instalar o Beautiful Soup é usando pip. Por favor, use o comando a seguir para uma instalação tranquila.

Instale a Biblioteca Beautiful Soup via pip

pip install beautifulsoup4 

Você também pode instalá-lo manualmente; baixe os arquivos da versão mais recente diretamente da página web Beautiful Soup .

Trabalhando com múltiplos analisadores

A biblioteca Beautiful Soup não faz toda a análise sozinha — em vez disso, ela se apoia em analisadores maduros como o html.parser interno do Python, o rápido analisador lxml e o html5lib, semelhante a um navegador. Dependendo das necessidades, você pode priorizar velocidade ou conformidade com padrões. Essa arquitetura oferece flexibilidade para escolher o analisador que melhor se adapta às suas necessidades, trocar velocidade de análise por flexibilidade, experimentar diferentes estratégias de análise sem alterar seu código Beautiful Soup, e assim por diante. O código simples a seguir mostra como os desenvolvedores podem usar diferentes analisadores com o Beautiful Soup.

Como usar múltiplos analisadores para analisar documentos HTML dentro de aplicativos Python?

# Using different parsers with Beautiful Soup
html_doc = "

Conteúdo de exemplo

" # Using lxml parser (fast) soup_lxml = BeautifulSoup(html_doc, 'lxml') # Using html5lib parser (slower but more lenient) soup_html5lib = BeautifulSoup(html_doc, 'html5lib') # Using Python's built-in parser soup_builtin = BeautifulSoup(html_doc, 'html.parser')

Extraindo links de páginas da web

Extrair links é uma tarefa comum de web scraping, particularmente útil para construir rastreadores web. A biblioteca de código aberto Beautiful Soup inclui suporte para carregar páginas da web e extrair links dentro de aplicações Python. O exemplo de código simples a seguir demonstra como buscar uma página web ao vivo usando a biblioteca requests, e então extrair todas as tags de âncora dentro de aplicações Python.

Como extrair links de páginas da web usando Python?

from bs4 import BeautifulSoup
import requests

# Fetch a real webpage
url = 'https://example.com'
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')

# Extract all links
links = soup.find_all('a')

print(f"Found {len(links)} links:")
for link in links:
    href = link.get('href')
    text = link.get_text().strip()
    print(f"Text: {text} | URL: {href}")

# Filter links by criteria
external_links = []
for link in soup.find_all('a'):
    href = link.get('href')
    if href and href.startswith('http'):
        external_links.append(href)

print(f"\nFound {len(external_links)} external links")

Procurando elementos HTML específicos

Uma das maiores forças do Beautiful Soup é a forma natural como ele permite pesquisar HTML, quase como ler inglês simples. Em vez de lidar com APIs DOM complexas, você descreve o que deseja, e o Beautiful Soup encontra para você. Suponha que você queira encontrar todos os links em uma página. Você pode usar o método find_all conforme mostrado no exemplo de código a seguir. O método retorna uma lista de todas as tags de link. Em seguida, iteramos sobre elas para extrair a URL e o texto e obter o nome visível do link usando a API Python.

Como pesquisar e extrair um elemento HTML específico de uma página da web via API Python?

# Extract all anchor tags
links = soup.find_all('a')

for link in links:
    href = link.get('href')
    text = link.text.strip()
    print(f"Text: {text} | URL: {href}")

Manipulação automática de codificação

Um dos recursos mais convenientes do Beautiful Soup é sua conversão automática de codificação. A biblioteca converte automaticamente documentos de entrada para Unicode e documentos de saída para UTF-8, eliminando uma das dores de cabeça mais comuns na raspagem de sites. Lembre‑se de que você só precisa se preocupar com codificações quando o documento não especifica uma codificação, pois o Beautiful Soup não consegue detectar a codificação automaticamente. Nesses casos raros, basta especificar a codificação original manualmente.

 Português