Как извлечь данные pdf с помощью python3

Как читать данные с pdf через python 3 (PyPDF2)

Мониторил недавно запросы заказчиков на бирже и наткнулся на интересную задачу. Нужно было из сотни .pdf-файлов извлечь емейлы. И мне стало интересно как это сделать с python 3. Нашел для этого модуль PyPDF2. С его помощью и будем читать данные с пдф-файлов.

Как установить PyPDF2

Модуль ставится без проблем через pip. И на виндовс в том числе. Через командную строку выполните код:

Спустя несколько секунд модуль установится.

Как открыть pdf-файл на питоне

Импортируем модуль PyPDF2, открываем файл через open в байтовом режиме.

Обратите внимание — PyPDF2 нужно писать именно так: большие буквы, кроме ‘y’, иначе будет ошибка импорта библиотеки. И файл открывать в режиме ‘rb‘, не ‘r’.

Как прочитать pdf-файл на python 3

Для чтения содержимого файла pdf используется класс PdfFileReader. Код будет выглядеть вот так:

Сначала импорт модуля, потом открываем файл. После этого читаем файл через PyPDF2.PdfFileReader.

Чтобы вывести количество страниц pdf-файла используйте такой код:

Как извлечь текст с pdf-файла с python 3

Сразу код, обьясню позже:

Первые три строки мы уже знаем: импорт, открыть файл, прочитать его. Дальше мы берем 37 страниц (getPage(37)). И извлекаем оттуда текст — extractText().
Если нужно использовать кодировку, то при выводе (или записи в файл) используйте .encode:

или

Этот код записывает данные в файл bdseoru_pdf.txt.

Как извлечь данные с pdf-файла (емейл, телефоны и т.п.)

Как прочитать данные с pdf я уже написал. Емейлы и телефоны можно извлекать как с обычного текста — например, с помощью стандартного модуля RE, и масок регулярных выражений. Если кому интересно — спрашивайте.

0 Comments

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

пятнадцать + 2 =

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">