我的城市水费账单每月都会通过电子邮件发送给我,作为其服务器上托管的当前 PDF 的链接。这样我就可以随时轻松下载此 PDF。我如何获取该 PDF 并提取我的帐户余额?发邮件或者发短信之类的。
答案1
代码会根据细节而有所不同,但一般方法是:
- 登录网站(?)
wget
使用或下载链接到该文件的页面curl
- 从页面获取 pdf 的链接
wget
使用或下载文件curl
pdftotext
使用 poppler-utils 或类似工具从 pdf 中提取文本- 使用
grep
or so从文本结果中获取你想要的数据
如果需要的话,最复杂的部分是登录过程。
当您发表评论时,您不需要登录,并且有一个固定的 URL,这当然简化了它。我们可以下载PDF并直接使用文本内容来提取数据。下面是从示例 pdf 文件中提取一行的示例。该行包含单词ghostview
和版本号,可以用作示例值。
$ u='http://www.wave.org.au/jupgrade/images/sample.pdf'
$ curl -s "$u" | pdftotext - - | grep 'ghostscript '
• ghostscript ≥ 5.10 (for example from Red Hat Contrib) and ghostview
下一步可能是提取简单的数值。
答案2
或许可以使用pdftotext
:
$ pdftotext -layout transaction.pdf - | grep -C1 amount
19876.0
amount paid
该程序是软件包的一部分poppler-utils
,可以使用以下命令安装:
sudo apt-get install poppler-utils
该-layout
选项用于pdftotext
尽可能严格地遵循 PDF 布局(否则amount paid
我的 PDF 表格布局与文本形式的数量相差甚远)。