将表从网站下载到R中

时间:2017-03-31 19:59:28

标签: r database web-scraping

我一直试图将this table下载到R中但没有成功。

我使用的代码就是这个

library(XML)
web_banrep <- "http://obieebr.banrep.gov.co/analytics/saw.dll?Go&Action=prompt&lang=es&NQUser=publico&NQPassword=publico&path=%2Fshared%2fSeries%20Estad%C3%ADsticas%2F1.%20Empleo%20y%20desempleo%2F1.1%20Serie%20hist%C3%B3rica%2F1.1.1.EMP_Total%20nacional&Options=rdf"
desemp     <-  readHTMLTable(web_banrep, header=T, which=1,stringsAsFactors=F)

我很感激任何帮助。

1 个答案:

答案 0 :(得分:2)

如果您只想要一张桌子,那么这种依赖JS的网站的一个非常方便的工具是:
Chrome管道(PluginGithub

有了它,您可以在Chrome浏览器中看到当前渲染的dom中的数据。我通常使用

selectorgadget | text | pbcopy

将数据复制到剪贴板

替代方案是:

selectorgadget | text | gist

为您提供指向您数据的要点的链接。这是你的:

https://gist.github.com/anonymous/3772146382b500195a22ba2b10962ffa

从那里点击raw获取数据的网址。 然后,您可以使用R解析它,如下所示:

gist_raw <- "https://gist.githubusercontent.com/anonymous/3772146382b500195a22ba2b10962ffa/raw/218b07739f6c146ec4ff15ec78657adc26455c95/data.txt"
raw <- read.table(gist_raw) 

col <- seq(1, nrow(raw), by = 3)
data.frame(col1 = raw[col,], col2 = raw[col + 1,], col3 = raw[col + 2,])

这会给你:

     col1  col2  col3
1 2017-02 57,25 10,50
2 2017-01 56,34 11,73
3 2016-12 58,98  8,74
4 2016-11 60,35  7,51
5 2016-10 60,77  8,29
6 2016-09 58,71  8,51
...

解析列留给你。