使用R进行PDF抓取

我一直在成功地使用XML包来提取HTML表,但是想扩展到PDF。从以前的问题来看,似乎没有一个简单的R解决方案但是想知道是否有最近的发展

如果做不到这一点,在Python(我是一个完整的新手)中有一些方法可以获得 并操纵pdfs,以便我可以使用R XML包完成这项工作

10

4 答案

从PDF中提取文本很难,而且几乎总是需要非常小心。

我将从命令行工具(如pdftotext)开始,看看它们吐出的是什么。问题是PDF可以按任何顺序存储文本,可以使用笨拙的字体编码,并且可以执行诸如使用连字字符(在正确排版中看到的联合'ff'和'ij')来抛弃你。

pdftotext可以在任何Linux系统上安装......

10
额外
那么pdftotext可以很好地生成一个干净的文本页面,但它不能以任何形式轻松创建我想要的东西。不管怎么说,多谢拉
额外 作者 pssguy,
额外 作者 pssguy,
借调。在R中执行此操作并不值得任何人开发和维护,当有更好的选项在R之外更好地维护。如果您需要执行大量文件,请尝试使用 find Unix中的实用程序(或Windows的GNU集合中的实用程序),或者可以将R命令发送到shell,循环遍历文件名...甚至Adobe在很长一段时间内都有一个糟糕的文本提取器(不确定它现在是否更好)施乐有一个好的。
额外 作者 Iterator,
你能指点我们一个代表性的PDF文件吗?
额外 作者 Spacedman,
在该页面上运行pdftotext并不是很精彩,但是首先转换为ps或者只是在PDF上运行ps2txt会产生一个几乎完美的表格,其中包含一些要删除的页面/页脚。
额外 作者 Spacedman,
我也在Windows上运行了pdftotext
额外 作者 pguardiario,

您可能想查看文本挖掘tm </代码>。我记得他们实现了所谓的读者,还有一个用于PDF。

5
额外
谢谢。我检查了文档。以某种方式使用pdftotext
额外 作者 pssguy,

AFAIK没有一种简单的方法可以将PDF表格变成对数据分析有用的东西。您可以使用 Data Science Toolkit 的文件到文本实用程序(R接口通过 RDSTK 包),然后解析生成的文本。请注意:解析通常非常重要。


编辑:有关将PDF转换为XML的有用讨论在discerning.com 上。简短的回答是,您可能需要购买商业工具。

4
额外
+1谢谢你。我检查了讨论并试图在试用时下载ABBYY产品,但它不会正确设置。猜猜我注定了
额外 作者 pssguy,

可以从PDF文档中提取表格的 tabula 应用程序的核心是一个简单的命令行Java应用程序, tabula-extractor

此Java应用程序已由 tabulizer 软件包包装在R中。将路径传递给PDF文件,它将尝试为您提取数据表并将其作为数据返回。

有关示例,请参阅当文档成为数据库时 - Tabulizer R Wrapper for Tabula PDF Table Extractor

1
额外