Разделение HTML-документа с помощью BeautifulSoup - PullRequest
4 голосов
/ 24 февраля 2011

Мы работаем с длинными агрегированными HTML-документами (для преобразования в PDF).В некоторых ситуациях агрегированный HTML-документ должен разбиваться по главам (выделенные HTML-страницы, начинающиеся с тега H1) или по подразделам (выделенные HTML-страницы, начинающиеся с каждого тега H1 или H2).До сих пор мы использовали BeautifulSoup для манипулирования агрегированным HTML, но мы не смогли найти правильный способ использования BeautifulSoup для извлечения вложенного документа (например, из первого H1 в следующий H2) надлежащим образом.

Ответы [ 2 ]

2 голосов
/ 24 февраля 2011

У меня был некоторый опыт работы с BeautifulSoup, и я не уверен, поддерживает ли он то, что вы хотите сделать напрямую. Вот две идеи

Поиск

Ниже приводится некоторая документация по имеющимся у нее средствам поиска. Может быть, вы можете найти H1s и H2s и посмотреть, поможет ли это извлечь поддокументы

http://www.crummy.com/software/BeautifulSoup/documentation.html#Searching Дерево разбора

Pretty Print + grep

BeautifulSoup имеет очень полезную функцию prettify для красивой печати HTML. Как только это будет сделано, каждый H1 или H2 будет находиться в отдельной строке, и в этом случае можно легко использовать утилиты для работы с текстом, такие как grep, чтобы легко определить номер строки. содержащие H1 и H2 и просто взять текст между ними.

http://www.crummy.com/software/BeautifulSoup/documentation.html#Printing Документ

0 голосов
/ 30 марта 2011

Поскольку вам не было предложено никакого решения с парсером, могу ли я предложить вам самостоятельно управлять регулярными выражениями?

Вторая точка зрения на датском языке имеет ту же природу, поскольку имя grep происходит от «глобальный - регулярное выражение - печать». Но это осложняется тем фактом, что для предварительной обработки необходимо использовать функциональность prettify.

Напротив, регулярные выражения являются мощным инструментом, который можно использовать непосредственно в тексте.

Не могли бы вы дать больше информации о том, что вы хотите сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...