"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo puedo extraer eficientemente el texto limpio de HTML en Python?

¿Cómo puedo extraer eficientemente el texto limpio de HTML en Python?

Publicado el 2025-03-04
Navegar:527

How Can I Efficiently Extract Clean Text from HTML in Python?

extrayendo texto de html con python

Su objetivo es extraer texto de un archivo html en python, replicando la salida que obtenga copiando el texto de un avicultura y pasando por un texto en un texto editor.

desafíos

Las expresiones regulares no son lo suficientemente robustas para html mal formado. Si bien a menudo se recomienda una sopa hermosa, puede recoger contenido no deseado como JavaScript y no interpretar las entidades HTML.

alternativa prometedora: html2Text

aunque produce un marcado en lugar de texto sin formato, html2Text manejas html correctamente e ignora javascript. Sin embargo, su documentación y ejemplos son limitados.

Código óptimo para la extracción de texto

el siguiente ofrece una solución efectiva que filtra los elementos no deseados y preserva las entidades HTML:

from urllib.request import urlopen
from bs4 import BeautifulSoup

url = "http://news.bbc.co.uk/2/hi/health/2284783.stm"
html = urlopen(url).read()
soup = BeautifulSoup(html, features="html.parser")

# Remove scripts and styles
for script in soup(["script", "style"]):
    script.extract()

# Extract text
text = soup.get_text()

# Convert line breaks and remove whitespace
lines = (line.strip() for line in text.splitlines())
chunks = (phrase.strip() for line in lines for phrase in line.split("  "))
text = '\n'.join(chunk for chunk in chunks if chunk)

print(text)

dependency

para usar este código, necesitará beautifulSoup4 instalado con:

pip install beautifulsoup4
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3