Equivalente ao InnerHTML ao usar lxml.html para analisar HTML

Estou trabalhando em um script usando lxml.html para analisar páginas da web. Eu fiz bastante BeautifulSoup no meu tempo, mas agora estou experimentando o lxml devido à sua velocidad

Gostaria de saber qual é a maneira mais sensata da biblioteca de fazer o equivalente ao InnerHtml do Javascript - ou seja, para recuperar ou definir o conteúdo completo de uma ta

<body>
<h1>A title</h1>
<p>Some text</p>
</body>

InnerHtml é, portanto:

<h1>A title</h1>
<p>Some text</p>

Eu posso fazer isso usando hacks (convertendo em string / regexes etc), mas estou assumindo que existe uma maneira correta de fazer isso usando a biblioteca que estou perdendo devido à falta de familiaridade. Obrigado por qualquer ajuda

EDIT: Obrigado ao pobk por me mostrar o caminho com tanta rapidez e eficácia. Para quem tenta o mesmo, aqui está o que eu acabei com:

from lxml import html
from cStringIO import StringIO
t = html.parse(StringIO(
"""<body>
<h1>A title</h1>
<p>Some text</p>
Untagged text
<p>
Unclosed p tag
</body>"""))
root = t.getroot()
body = root.body
print (element.text or '') + ''.join([html.tostring(child) for child in body.iterdescendants()])

Observe que o analisador lxml.html corrigirá a tag não fechada; portanto, tome cuidado se isso for um problem

questionAnswers(3)

yourAnswerToTheQuestion