С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
 Аватар для Orlov1
100 / 42 / 7
Регистрация: 03.02.2019
Сообщений: 655

Парсинг pdf Tabula

03.02.2023, 23:15. Показов 2175. Ответов 9

Студворк — интернет-сервис помощи студентам
Всем привет!
Есть PDF файл test.pdf. https://disk.yandex.ru/i/1TLhlw6pHL6shg
Нужно спарсить из таблицы ФИО и таб номер.

Накидал вот такой код, но он парсит данные не корректно. ФИО вообще не отображается :

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import glob
import pandas as pd
import tabula
 
file = ("test.pdf")
 
pdf_files = glob.glob('*.pdf')
 
pdf_tables = tabula.read_pdf(file,
                             pages = 'all',
                             multiple_tables=True,
                             lattice=True,
                             encoding="windows-1251")
 
for table in pdf_tables:
    print(pdf_tables[0])

Что я делаю не так и как спарсить данные корректно ?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.02.2023, 23:15
Ответы с готовыми решениями:

PDF парсинг на С++
Подскажите пожалуйста,какова структура файлов PDF? Или есть ли какие-то методы и библеотеки для работы с PDF файлами. Интересует как и...

Парсинг pdf файла
Подскажите пожалуйста можно ли как то про парсить pdf файл , если не сложно покажите пример пожалуйста!

Парсинг таблиц из pdf файла
Всем привет! Мне нужно извлечь из таблицы в нескольких pdf файлах данные в формате даты dd.mm.yy. Пытаюсь парсить с помощью библиотеки...

9
5515 / 2868 / 571
Регистрация: 07.11.2019
Сообщений: 4,757
04.02.2023, 08:23
Python
1
2
table=pdf_tables[0]
print(table['Фамилия, Имя, Отчество'])
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
0           Иванов Иван Иванович
1           Петров Петр Петрович
2                            NaN
3        Сидоров Сидор Сидорович
4     Михайлов Михаил Михаилович
5       Сергеев Сергей Сергеевич
6        Романов Роман Романович
7           Егоров Егор Егорович
8                            NaN
9                            NaN
10                           NaN
11                           NaN
12                           NaN
13                           NaN
14                           NaN
15                           NaN
16                           NaN
17                           NaN
18                           NaN
Name: Фамилия, Имя, Отчество, dtype: object
0
 Аватар для Orlov1
100 / 42 / 7
Регистрация: 03.02.2019
Сообщений: 655
04.02.2023, 15:41  [ТС]
u235, благодарю, а как исключить лишние строки 'NaN' ?
0
5515 / 2868 / 571
Регистрация: 07.11.2019
Сообщений: 4,757
04.02.2023, 16:02
Orlov1, не очень знаю Pandas, но можно так:
Python
1
print(table['Фамилия, Имя, Отчество'][~pd.isna(table['Фамилия, Имя, Отчество'])])
Code
1
2
3
4
5
6
7
8
0          Иванов Иван Иванович
1          Петров Петр Петрович
3       Сидоров Сидор Сидорович
4    Михайлов Михаил Михаилович
5      Сергеев Сергей Сергеевич
6       Романов Роман Романович
7          Егоров Егор Егорович
Name: Фамилия, Имя, Отчество, dtype: object
0
 Аватар для Orlov1
100 / 42 / 7
Регистрация: 03.02.2019
Сообщений: 655
04.02.2023, 16:12  [ТС]
Цитата Сообщение от u235 Посмотреть сообщение
не очень знаю Pandas, но можно так:
PythonВыделить код
1
print(table['Фамилия, Имя, Отчество'][~pd.isna(table['Фамилия, Имя, Отчество'])])
У меня этот код не работает, ругается на ~pd.isna
0
5515 / 2868 / 571
Регистрация: 07.11.2019
Сообщений: 4,757
04.02.2023, 16:23
А так:
Python
1
print(''.join(i+'\n' for i in table['Фамилия, Имя, Отчество'] if str(i)!='nan'))
0
 Аватар для Orlov1
100 / 42 / 7
Регистрация: 03.02.2019
Сообщений: 655
04.02.2023, 19:07  [ТС]
Что означают эти ошибки и как от них избавиться ? см скрин
Миниатюры
Парсинг pdf Tabula  
0
5515 / 2868 / 571
Регистрация: 07.11.2019
Сообщений: 4,757
04.02.2023, 20:13
Orlov1, это не ошибки, это предупреждения. Означает что некоторые символы в этом pdf не могут корректно отобразиться в юникод.
1
 Аватар для Orlov1
100 / 42 / 7
Регистрация: 03.02.2019
Сообщений: 655
04.02.2023, 20:16  [ТС]
Цитата Сообщение от u235 Посмотреть сообщение
Orlov1, это не ошибки, это предупреждения. Означает что некоторые символы в этом pdf не могут корректно отобразиться в юникод.
А как-то игнорировать эти предупреждения можно, чтобы они не выводились в консоли ?
0
5515 / 2868 / 571
Регистрация: 07.11.2019
Сообщений: 4,757
04.02.2023, 20:23
Orlov1, Если погуглить по фразе "tabula python off warning", то окажется, что достаточно добавить опцию silent=True, например:
Python
1
tabula.read_pdf("/path/to/sample.pdf", pages="all", silent=True)
Я это нашел за две минуты. Неужели у вас какой-то другой интернет?
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.02.2023, 20:23
Помогаю со студенческими работами здесь

Перенести парсинг PDF из PHP На C#
Добрый день, многоуважаемые форумчане. у меня возникла задача - прочитать текст из pdf документа БЕЗ использования сторонних библиотек для...

Парсинг текстовых pdf файлов
Всем доброго времени суток! На днях получил задание - написать программу на c++, осуществляющую парсинг пдф файла, которая вытаскивает...

парсинг pdf - русские шрифты
Для парсинга использую pdfbox все отлично если в pdf обычная - без применения каких то шрифтов иначе замест текста идут коды типа...

Парсинг множества документов PDF с сохранением полученных данных в БД
Всем доброго времени суток. Ситуация такая, что у меня есть куча PDF файлов из которых нужно вытащить данные в мою базу данных, все файлы...

Есть pdf фаил в виде таблицы, необходим парсинг
есть pdf файл в виде таблицы необходимо парсинг текста по столбцам и записывать их в бд . структура файла имя фамиля отчество


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru