Я бы предположил, что преобразование docx в html не является правильным подходом для извлечения заголовков и подзаголовков из моего опыта. Поскольку мы имеем дело с неструктурированными документами (.docx
), созданными разными авторами, не существует специфического c или определенного способа идентификации подзаголовка под заголовком, если только автор явно не определяет его как подзаголовок при создании документ.
В некоторых случаях авторы могут выбрать определение заголовка как форматирование Normal
и Bold
вместо того, чтобы определять его как Heading
, а в некоторых случаях автор может решить определить его как сам Heading
.
Короче говоря, вы сможете идентифицировать заголовки и подзаголовки, только если автор выполнил их правильное форматирование при создании документа. Я встречал много случаев, когда такое форматирование не выполняется например, Heading
может быть создано автором как тип Heading
, тогда как подзаголовок будет типом Normal
с примененным Bold
к нему. Следовательно, вы сможете найти заголовки и подзаголовки только при правильном форматировании, например, размер подзаголовков меньше, чем размер заголовков во всех случаях.
Даже для таких случаев я бы рекомендовал использовать пакет python-docx
непосредственно в самом .docx
, поскольку он может извлекать заголовки и подзаголовки, если они определены автором с правильным форматированием.
Этот рецепт поможет вам извлечь всю информацию из .docx
, включая таблицы, изображения и тексты (вместе с информацией о стилях). Вы можете использовать этот фрагмент кода для извлечения текста (заголовков и подзаголовков) только из него.
-> После прочтения всего этого, если вы все еще склонны извлекать информацию из html версии docx, то лучший пакет для анализа html файлов и извлечения из них содержимого - это beautifulsoup
. Вы можете найти образцы ответов здесь .
Обновление: Как я вижу, поскольку в ваших документах есть Таблица содержания (To C), вы можете напрямую извлечь В C либо из html, либо из docx и выполнить некоторую структуризацию после извлечения. Это лучший способ, который я мог придумать.
- Для извлечения To C из html вы можете использовать
Beautifulsoup
для извлечения части To C из html и затем структурируйте извлечения - Для извлечения в C из docx вы можете использовать эту ссылку
Ура!