Извлечение текста из pdf с помощью Python и Pypdf2
Я хочу извлечь текст из файла pdf, используя пакет Python и PYPDF. Это мой pdf fie, и это мой код:
Моя проблема заключается в том, что P_lines не может извлекать данные строка за строкой и приводит к одной гигантской строке. Я хочу извлечь текст строка за строкой, чтобы проанализировать его. Есть какие-нибудь предложения о том, как его улучшить? Спасибо! Это строка, которую возвращает код:
Простые способа извлечения данных из PDF
- Общий объем воды источники могут включать пресную воду, добываемую воду и/или оборотную воду ** Информация основана на максимальном потенциале концентрации, и, таким образом, общая сумма может превышать 100
Из примера выше видно, что библиотка xlrd отвечает за чтение данных, а xlwt — за запись, поэтому нет возможности внести изменения в уже созданную книгу без ее копирования в новую. Кроме этого указанные библиотеки работают только с файлами формата xls (Excel 2003) и у них нет поддержки нового формата xlsx (Excel 2007 и выше).
Шаг 1. Открываем PDF в Word
Почему-то мало кто знает, но начиная с 2013 года Microsoft Word научился открывать и распознавать PDF файлы (даже отсканированные, т.е. без текстового слоя!). Делается это совершенно стандартным образом: открываем Word, жмем Файл — Открыть (File — Open) и уточняем PDF-формат в выпадающем списке в правом нижнем углу окна.
Затем выбираем нужный нам PDF-файл и жмем Открыть (Open) . Word сообщает нам, что собирается запустить распознавание этого документа в текст:
Соглашаемся и через несколько секунд увидим наш PDF открытым для редактирования уже в Word:
Так что давайте не будем срезать углы, а сделаем все чуть сложнее, но правильно.
Как извлечь таблицу в виде текста из PDF с помощью Python? CodeRoad
- удалить ненужные столбцы (правой кнопкой мыши по заголовку столбца — Удалить)
- заменить точки на запятые (выделить столбцы, щелкнуть правой — Замена значений)
- удалить знаки равно в шапке (выделить столбцы, щелкнуть правой — Замена значений)
- удалить верхнюю строку (Главная— Удалить строки — Удаление верхних строк)
- удалить пустые строки (Главная — Удалить строки — Удаление пустых строк)
- поднять первую строку в шапку таблицы (Главная — Использовать первую строку в качестве заголовков)
- отфильтровать лишние данные с помощью фильтра
Мы найдем прямоугольник с самым верхним левым углом. Затем мы найдем все прямоугольники, центр которых находится в пределах значений верхнего y и нижнего y этого верхнего левого прямоугольника. Затем мы отсортируем эти прямоугольники по значению x их центра. Мы удалим эти прямоугольники из списка и повторим.
Заключение
В качестве заключения, надо отметить, примеры в данной статье самые простые и для более глубоко изучения данных методов, я рекомендую обратиться к документации по соответсвующим пакетам.
Также хочу заметить, что указанные пакеты не являются единственными и в статье опущено рассмотрение, таких пакетов как xlwings, который может работать с Excel файлами “на лету” или же PyXLL, который выполняет аналогичные функции ExcelPython.
Кроме этого в статье я попвтался несколько обобщить разборасанный по сети материал, т.к. такие вопросы часто фигурируют на формух и думаю некоторым будет полезно иметь, такую “шпаргалку” под рукой.
Извлечение текста из pdf с помощью Python и Pypdf2 — CodeRoad
Постановка Задачи: У меня есть PDF, структура которого похожа на таблицы, но линии не видны. Пожалуйста, найдите ниже пример: Приведенное выше изображение показывает, как выглядит моя таблица на одной из страниц PDF. Мои Исследования Как извлечь таблицу в виде текста из PDF с помощью Python? —.
5 ответов
Проблема Я пытаюсь определить, какого типа документ (например, ходатайство, переписка, повестка в суд и т. д.), просматривая его текст, предпочтительно используя python. Все PDFs доступны для поиска, но я не нашел решения для разбора его с помощью python и применения скрипта для поиска (если.
Я разбираю документ PDF с помощью модуля pdfminer python module. Я просто хочу извлечь текст из этого документа. Процесс идет отлично, но когда я извлекаю объекты LTText* , я понимаю, что не получаю весь текст внутри этого объекта LTText* . Похоже, что у него есть внутренний буфер или что-то в.
Вот рабочий пример извлечения текста из файла PDF с использованием текущей версии PDFMiner(сентябрь 2016)
структура PDFMiner недавно изменилась, поэтому это должно работать для извлечения текста из файлов PDF.
Правка : Все еще работает по состоянию на 7 июня 2018 года. Проверено в Python версии 3.x
Изменить: Решение работает с Python 3.7 на 3 октября 2019 года. Я использовал библиотеку Python pdfminer.six , выпущенную в ноябре 2018 года.
потрясающий ответ от DuckPuncher, для Python3 убедитесь, что вы установили pdfminer2 и сделали:
Это работает в мае 2024 года с использованием PDFminer six в Python3.
Извлечение текста из файла PDF с помощью PDFMiner в python? CodeRoad
В своих отчетах я предпочитаю использовать второй способ, а именно использование файла Excel через com-объект с использованием библиотеки win32com. Его преимуществом, является то, что выможете выполнять с файлом все опреции, которые позволяет делать обычный Excel с использованием VBA.