首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >重建已抓取的web的列的提示pdf

重建已抓取的web的列的提示pdf
EN

Stack Overflow用户
提问于 2019-06-13 03:29:38
回答 1查看 87关注 0票数 0

我在抓取这个web pdf表时遇到了问题:

https://www.usbr.gov/mp/cvo/vungvari/milfln.pdf

转换成一个data.frame。这是我到目前为止所知道的:

代码语言:javascript
运行
复制
library(pdftools)
df <- "https://www.usbr.gov/mp/cvo/vungvari/milfln.pdf"
df  <- pdf_text(df)

从这里看,似乎所有的数据都被抓取了,但是列结构丢失了。重建列(或者在没有pdftools的情况下以完全不同的方式进行抓取)有哪些推荐的方法?一旦建立了列,我想我就能够格式化/整理数据了。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-13 21:45:36

您的代码以文本形式返回pdf。桌子在里面,你只要把它拿出来就行了。

代码语言:javascript
运行
复制
library(pdftools)
file <- "https://www.usbr.gov/mp/cvo/vungvari/milfln.pdf"
rawtext  <- pdf_text(file)

start <- "\r\n    1"
end <- "\r\n  TOTALS"
df <- read.table(text=substring(rawtext, regexpr(start, rawtext), regexpr(end, rawtext)))
> head(df)
  V1     V2     V3     V4      V5      V6     V7     V8    V9     V10    V11    V12    V13
1  1 41,633 18,956 86,010 100,117 121,958 24,176 40,473 3,739 437,062 +1,443   +728  6,904
2  2 41,867 20,547 86,241 100,249 122,481 24,282 40,635 3,715 440,017 +2,955 +1,490  6,874
3  3 42,212 22,371 86,148 100,249 122,882 23,753 40,841 3,739 442,195 +2,178 +1,098  8,201
4  4 43,002 25,223 86,460 100,396 123,395 23,734 41,059 3,722 446,991 +4,796 +2,418  9,363
5  5 44,225 29,253 86,923 100,601 123,804 23,602 41,356 3,680 453,444 +6,453 +3,253 11,137
6  6 45,978 34,036 87,529 101,234 123,954 23,548 41,642 3,643 461,564 +8,120 +4,094 12,288
     V14     V15
1  7,632 1,554.8
2  8,364 1,571.4
3  9,299 1,589.8
4 11,781 1,613.2
5 14,390 1,641.7
6 16,382 1,674.2

regexpr返回startend所在的字符串中的索引。substring使用这些索引将文本限制为仅限于表格。然后,read.table将文本格式化为data.frame。您必须自己添加列标题。您可能还希望删除逗号,并将列更改为数字。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56569175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档