Как скрести таблицы в тысячи файлов 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)]