lxml, <br/> и пропадающий tail

Рейтинг: 1Ответов: 0Опубликовано: 29.04.2015

Пытаюсь тут сайт парсить, и обнаружил, что между тегами <br/> пропадает перенос строки:

>>> e = lxml.html.fromstring('<div>a<br/>\n<br/>\nb</div>')
>>> lxml.html.tostring(e, method='xml', encoding='utf-8')
'<div>a<br/><br/>\nb</div>'
>>> e.findall('br')[0].tail
None
>>> e.findall('br')[1].tail
'\nb'

Не то чтобы критично, но немного неприятно. Отчего он пропадает и возможно ли его как-то вернуть не вручную?

Что-то похожее было на соседнем stackoverflow, но там проблема с head и решилась обновлением, а у меня вот не решилась.

При парсинге через html5lib перенос строки на месте, но для моих целей он слишком медленный.

UPD: Описанная выше ситуация — на 32-битном Debian 7, Python 2.7.3 и на lxml 3.4.4. На домашнем ноутбуке на 64-битном Arch на Python 2.7.9 и таком же lxml 3.4.4 всё внезапно работает нормально. o_O

Ответы

Ответов пока нет.