问题标签 [pdf-scraping]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
375 浏览

r - R pdftools 转换为图像时没有得到所有层的pdf

我刚刚开始尝试使用pdftools从 pdf 中提取图像。但是我发现并非所有图层都被复制。例如,在下面的代码中,行在 png 中再现,但不是点。显然,在这个例子中,我可以直接保存 png,但是当我没有创建 pdf 的源代码/数据时,我只是用它来突出我对其他数据的问题。

警告下面的代码在 C:\temp 目录中创建文件

这将按预期创建带有点和线的pdf

在此处输入图像描述

但是,当我转换时,我没有得到积分,只有线条

在此处输入图像描述

reprex 包(v0.3.0)于 2019 年 11 月 19 日创建

我也尝试过使用pdftools::pdf_render_page和来自 magick 包的和,结果相同image_read_pdfimage_convert但是我知道这些magick功能实际上正在使用pdftools,所以问题一定存在

0 投票
3 回答
26625 浏览

python - 如何使用 Python 抓取 PDF;仅限特定内容

我正在尝试从网站上可用的 PDF 中获取数据

https://usda.library.cornell.edu/concern/publications/3t945q76s?locale=en

例如,如果我查看 2019 年 11 月的报告

https://downloads.usda.library.cornell.edu/usda-esmis/files/3t945q76s/dz011445t/mg74r196p/latest.pdf

我需要第 12 页上的玉米数据,我必须为期末库存、出口等创建单独的文件。我是 Python 新手,不知道如何单独抓取内容。如果我能弄清楚一个月,那么我可以创建一个循环。但是,我对如何处理一个文件感到困惑。

有人可以帮我吗,TIA。

0 投票
0 回答
100 浏览

pdf - r 中的制表器库在 PDF 中识别表格上的非字母数字(符号)字符时出现问题

我正在使用 r 中的制表器库从位于公共网站(https://www.waterboards.ca.gov/sandiego/water_issues/programs/basin_plan/docs/update082812/Chpt_2_2012.pdf的 PDF 内的表格中捕获数据)。

我感兴趣的示例表位于 PDF 的第 23 页(第 2-21 页,文档开头有几个空白页)。该表格具有非标准格式和不同的符号(单元格中的非字母数字字符)。我想从这个文档中提取大部分(如果不是全部的话)表。

我想最终得到一个包含带有代码的字符的表格(即,带有 999 的黑色圆圈,带有 777 的白色圆圈,以及带有 -99 的符号等)。

Tabulizer 在将黑圈转换为一致的字母数字代码并保留加号的大部分情况下做得很好,但在带有白圈的 REC1 列上遇到问题,这很奇怪,因为它似乎可以识别其他列上的奇异字符.

有人可以帮忙解决这个问题吗?我也尝试选择表格区域,但输出更糟。下面是我正在使用的 r 代码。

我知道我可以使用 PDF 的内置选择和导出工具为文档中的所有表格手动完成此过程,但希望自动化该过程。

0 投票
1 回答
96 浏览

c# - 从多页 PDF 创建单页 PDF,无需外部库

我在 SO 中看到了以下问题: Create Multi-Page PDF from other PDFs

但它没有回答我需要什么。考虑一下我有一个 20 页的 PDF。到目前为止,一切都很好。

从同一个地方,我可以得到一个只有一页的 PDF。这个将用作我的模板 PDF。我要做的是替换模板PDF上的内容(FlateDecodeStream)(以及长度)并生成一个新的单页。

我得到了 PDF 文件;但是,没有显示一个小徽标,并且 adobe reader 说正确显示 PDF 存在问题(google chrome 和 edge 只是不显示徽标,没有错误消息)。

最后我试图弄乱外部参照表(手动调整值),但得到了相同的结果。

有没有人对PDF有一些了解可以给我任何意见?

我正在上传 template_pdf 和另一个我想提取数据并创建第三个 pdf 的文件(使用模板 pdf,但内容来自另一个 PDF)。此外,我将上传我手动制作的 PDF,但显示错误(它显示数据但没有 JPEG 徽标)。

一切都在这里:https ://drive.google.com/drive/folders/1tsGIbtbfwuATPQ6a_VPjnxLT4ozzNt0s?usp=sharing

我一直在使用 HxD 做所有事情(查看十六进制内容和复制\粘贴数据)

提前致谢

编辑:我正在添加我当前用于生成 PDF 的代码。即使外部参照表正常(位置正确),它也是无效的 PDF。代码非常难看,但现在我希望让它工作(而不是制作一个好的代码)

使用的文件: https ://drive.google.com/drive/folders/1i3J-yioFvcoiakyc_Wi8ddn9g6Pxy7zd?usp=sharing

0 投票
1 回答
2056 浏览

python - 从 pdf 报告中提取财务报表

我一直在尝试以 pdf 格式提取嵌入在年度报告中的财务报表,并使用 python 以 excel/CSV 格式导出它们但我遇到了一些问题: 1. 特定的财务报表可以在报告的任何页面上。如果我要处理数百个 pdf,我将不得不指定页码,这需要很长时间。有什么方法可以让爬虫知道确切的语句在哪里?2. 一些报告跨越多个页面,刮取pdf后的最终结果不是我想要的 3. 不同的年度报告有不同的财务报表格式。有没有办法处理它们并将它们更改为特定的标准格式?

如果有人做过这样的事情并可以分享示例,我也将不胜感激。

Ps 我正在使用 python 并使用 tabula 和 Camelot

0 投票
1 回答
220 浏览

r - 使用 R 从 PDF 中提取字符串

我有这个来自欧洲议会的 PDF 文件,你可以在这里下载。我已经下载它并把它放在R中。它包含经过投票的欧洲议会(MEP)成员名单。

我只想提取这些列表的一部分。"AVGIVNA RÖSTER"具体来说,我想提取 和 之间的名称并将其放入表格中0请参阅此屏幕截图中突出显示的文本

类似系列的名称在 PDF 中重复出现。它指的是特定的投票。我希望它们都在一张桌子上。MEP 的名称发生了变化,但结构保持不变,它们始终位于位"AVGIVNA RÖSTER"和“0”之间。

我想过使用一个startswith函数和一个 for 循环“但我在写作方面遇到了困难。

这是我到目前为止所做的:

0 投票
1 回答
199 浏览

c# - 从头开始手动构建 PDF 文件并嵌入图像

我正在尝试以编程方式生成 PDF 文件。

整个案例是:我收到一个多页 PDFS。每个页面都是一个图像,包含我想要的内容。我不想使用外部库,因为我正在寻找性能\优化(从长远来看,这对我很重要)。我曾经有一些已经在工作的东西(我创建了一个像 header\file content(image)\footer 这样的系统),而且它一直都在工作。但是,有些事情发生了变化,它停止了工作。

无论如何,为了修复它并从头开始构建,这是我执行的步骤:

  1. 提取与图像文件相关的 FlateDecode 部分(众多之一)
  2. 从中创建了一个干净的 JPEG(没有 Photoshop 标题等,一个简单的 JPEG 文件)
  3. 将文件提交给一些在线PDF转换服务;从此 JPEG 创建了一个文件。
  4. 确定 PDF 文件的构建方式和图像部分。手动编码所有内容,包括外部参照表中的引用
  5. 我得到的只是“文件已损坏”。我比较了这两个文件(原始文件和我制作的文件),它们似乎几乎相等(由于图像部分的大小差异)。

我不知道还能做什么,因为一切似乎都非常完美。我还解码了 PDF 文件中的一些字符串 FlateDecode 部分,但我在文件中找不到与对象定位相关的任何内容。

这是我正在使用的代码:

以及用于构建对象的类:

我一直在使用的文件在这里:https ://drive.google.com/drive/folders/11HN9cB9Cs7uqBQdpZkNyNKt29sl_xJrL?usp=sharing

描述是:

decompressedimg-convertido.pdf -> 我在线转换的文件。

decompressedimg.raw -> 我从多页 PDF 中提取的图像部分。尺寸为W:1016,H:1328

fullmanual01.pdf -> 我使用我的代码生成的文件。

PDfRjMultiplePages -> 包含多个页面的 PDF 文件,我愿意以编程方式从中提取页面。

任何输入表示赞赏。我还提到了这个问题:从头开始编写 PDF 文件的问题,但找不到我正在尝试做什么的提示(不幸的是)

坦克

0 投票
0 回答
1447 浏览

python - Python tabula 返回'attributeError:模块'tabula'没有属性'read_pdf''

我和我一起Tabula做一些 pdf 抓取。但是,当我运行:

tables = tabula.read_pdf(file, pages = "all", multiple_tables = True)

我明白了attributeError: module 'tabula' has no attribute 'read_pdf'.

我尝试了在网上找到的大多数解决方案,安装tabula-py而不是仅安装tabula也无济于事。有什么线索吗?

非常感谢!

0 投票
1 回答
1980 浏览

python - 如何使用 python-camelot 从同一目录中的多个 PDF 中提取数据?

我正在尝试从多个 pdf 中的多个表中提取数据并将其保存为 csv 格式。我做了研究,发现 python-camelot 是一个很好的提取工具。我试过了,它在单个 pdf 上工作得很好。但是,我有超过 50 个相同格式的 PDF,所以我决定使用 For 循环遍历所有文件,但它不起作用,并且我得到一个错误文件在目录中找不到。你能帮忙吗?这是代码:

0 投票
1 回答
1780 浏览

python - Camelot-py 没有在一行中检测到两行文本

使用 Camelot-py 从 .PDF 中抓取表格数据,它不会拾取堆叠的文本行(请参阅下面的第 9 行和第 10 行)

1 到 14

第 9 行和第 10 行没有文字说明。

https://camelot-py.readthedocs.io/en/master/user/advanced.html#specify-table-areas

这是我拥有的 .ipynb 格式的代码。第一个块用于按预期提取的第一个表,第二个用于第 9 页。

桌子

使用 MatPlotLib,我可以看到 Camelot 正确检测了第 9 页的表格区域/网格。

绘图表区域

绘图网格

这是 PDF 的 Google Drive 链接

通话报告 PDF

任何见解将不胜感激。