一尘不染

如何在数千个PDF文件中抓取表格?

node.js

我大约有1500个PDF,每个PDF仅包含1页,并且显示相同的结构(例如,请参阅http://files.newsnetz.ch/extern/interactive/downloads/BAG_15m_kzh_2012_de.pdf)。

我正在寻找一种遍历所有这些文件(在本地,如果可能的话)并提取表的实际内容(作为CSV,存储到SQLite DB中,等等)的方法。

我很想在Node.js中做到这一点,但是找不到任何合适的库来解析这些东西。你知道吗

如果无法在Node.js中使用,也可以使用Python进行编码(如果有更好的方法可用)。


阅读 202

收藏
2020-07-07

共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)]
2020-07-07