Как скрести таблицы в тысячи файлов PDF?

У меня есть около 1 500 PDF-файлов, состоящих всего из 1 страницы каждый, и демонстрирующих одинаковую структуру (см., Например, http://files.newsnetz.ch/extern/interactive/downloads/BAG_15m_kzh_2012_de.pdf).

То, что я ищу, - это способ перебрать все эти файлы (локально, если это возможно) и извлечь фактическое содержимое таблицы (как CSV, сохраненное в БД SQLite, что угодно).

Я хотел бы сделать это в Node.js, но не смог найти подходящих библиотек для разбора таких вещей. Вы знаете что-нибудь?

Если это невозможно в Node.js, я также могу написать код на Python, если есть лучшие методы.

1 ответ

Решение

Я не знал этого раньше, но less обладает магической способностью читать PDF-файлы. Мне удалось извлечь данные таблицы из вашего примера PDF с помощью этого сценария:

import subprocess
import re

output = subprocess.check_output(["less","BAG_15m_kzh_2012_de.pdf"])

re_data_prefix = re.compile("^[0-9]+[.].*$")
re_data_fields = re.compile("(([^ ]+[ ]?)+)")
for line in output.splitlines():
    if re_data_prefix.match(line):
        print [l[0].strip() for l in re_data_fields.findall(line)]
Другие вопросы по тегам