@ctocopok

Парсим HTML, вынимаем оттуда неформатированный текст. Python + LXML

Стараюсь распарсить блог, в котором публикуются домашние задания для учеников школы. На HTML-странице имеются однозначно определяемые по CSS DIVы, в которых есть текст домашних заданий, к сожалению, с оформлением (наведена красота).
Если взять текст элемента с помощью element.text_content(), получим все подряд и без разметки, то есть ДЗ будет в одну строку, кашей.
Если брать через Xpath, например, spans = elementlist[0].xpath("*/span//text()"), то каждый чих оформления, будь то <b>, <u>, <p> и т.п. - будет отдельным элементом, и выводя построчно элементы, получим некрасивый столбик значений, в котором угадать место применения перевода строки будет просто нереально.

Вопрос - как вынуть текст, сохранив переводы строки, но проигнорировать оформление в спаны, жирноту, курсив и т.п.?

Исходный html (пример) доступен по ссылке irina2013-2gymn.blogspot.ru/2013/12/blog-post_4.html
  • Вопрос задан
  • 5700 просмотров
Пригласить эксперта
Ответы на вопрос 1
maxaon
@maxaon
Преобразуйте требуемый элемент обратно в HTML, замените '<br>','</p>' на переводы строки. Остальные теги просто удалите с помощью re в non-greedy режиме
re.sub("<.*?>","",text)

PS: Для парсинга сайтов вполне подходит grab.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы