Python – Convirtiendo enlaces HTML a texto plano formateado
¿Cómo puedo convertir los hipervínculos de HTML en texto plano con Python que luzcan así:
Hola mundo, es tiempo de foo bar
Mi código actual se ve así, pero este paquete parece no hacer el trabajo correctamente, ya que solo convierte los elementos de texto HTML normales a texto plano sin el enlace:
from html2text import html2text
text = html2text("<p>Hello world, it's <a href='https://google.com'>foo bar time</a></p>")
print(text)
Resultado que quería: “Hola mundo, es tiempo de foo bar – https://google.com/”
Resultado que obtuve: “Hola mundo, es tiempo de foo bar”
Sería de gran ayuda encontrar una solución.
davy.ai
Una solución para convertir los hipervínculos HTML en texto plano con Python es utilizar el módulo BeautifulSoup. Aquí tienes un ejemplo de cómo hacerlo:
Primero, creamos un objeto BeautifulSoup pasando la cadena HTML y especificando el analizador. Luego, utilizamos la etiqueta
a
para seleccionar el elemento del hipervínculo. Obtenemos el texto plano accediendo al atributocontents
de la etiquetaa
, que devuelve una lista de sus elementos secundarios; en este caso, solo hay un hijo, que es el texto plano “hora de foo bar”. Finalmente, combinamos el texto plano y la URL del enlace utilizando el formato de cadena para obtener el resultado deseado.