scraping - python html parser
BeautifulSoup innerhtml? (4)
Digamos que tengo una página con un div
. Puedo obtener fácilmente ese div con soup.find()
.
Ahora que tengo el resultado, me gustaría imprimir TODO el innerhtml
de ese div
: Quiero decir, necesitaría una cadena con TODAS las etiquetas html y texto todo junto, exactamente como la cadena que obtendría en JavaScript con obj.innerHTML
. es posible?
Una de las opciones podría ser usar algo como eso:
innerhtml = "".join([str(x) for x in div_element.contents])
Hay una función no documentada que se aproxima al método DOMHTML interno :
def innerHTML(element):
return element.decode_contents(formatter="html")
Esto ha pasado todos mis casos de prueba hasta ahora. Tal vez alguien debería actualizar los documentos?
¿Qué tal solo unicode(x)
? Parece funcionar para mi.
Editar: Esto le dará el HTML externo y no el interno.
Si solo necesita el texto (sin etiquetas HTML), puede usar .text
:
soup.select("div").text