繁体   English   中英

使用RSelenium来获取表格中的背景色?

[英]Grabing background color in a table using RSelenium?

我正在从此网站的底部抓取“动态”表: http://arbejdsmarkedsbalancen.dk/da/Historik.aspx?group = Akademisk%20arbejde&region =%7CNordjylland%7C&jobOpportunities = |||||||||| ||| 5 | 3 | 2 | 4 | 1 |&图表= Skemaoversigt&年= | 2015-1 | 2015-2 |

在网站上看起来像这样,第一列是不同职业的名称(丹麦语),第二和第三行是颜色指示符 在此处输入图片说明

因此,我希望制作一张看起来像这样的表:

1. column                          2. column  3. column
Adjunkt, Humaniora                 yellow     yellow
Adjunkt, Naturvidenskab Og Teknik  yellow     yellow
....                               ....       .... 

等等。

由于我无法在html源代码中找到表结构,因此我认为它是由其他脚本生成的,必须使用RSelenium提取。

到目前为止,我的代码看起来像这样

library(RSelenium)
library(XML)

server <- rsDriver(browser = "firefox")
remDr <- server$client

url <- "http://arbejdsmarkedsbalancen.dk/da/Historik.aspx?group=Akademisk%20arbejde&region=%7CNordjylland%7C&jobOpportunities=|||||||||||||5|3|2|4|1|&chart=Skemaoversigt&years=|2015-1|2015-2|"
remDr$navigate(url)

list <- readHTMLTable(remDr$getPageSource()[[1]], encoding="UTF-8")
final.table <- list[[1]]

View(final.table)

这给我留下了这个输出。

产量

有谁知道我可以从第二列和第三列中的颜色或颜色的任何其他指示符中提取颜色吗?

提前致谢!

最基本的解决方法是使用rvest而不是XML软件包,解决方案如下:

page <- read_html(remDr$getPageSource()[[1]])
table.1 <- page %>%  html_nodes("table") %>% html_table(fill = TRUE)
table.1 <- table.1[[1]]
table.1 <- table.1[-nrow(table.1),]
colnames(table.1) <- c("Stilling","firsthalf","secondhalf")

table.2 <- page %>%  html_nodes("td") %>% html_attr("style") %>% gsub("background-color:", "", .)
table.2.a <- table.2[seq(1,length(table.2),3)]
table.2.b <- table.2[seq(2,length(table.2),3)]
table.2.b <- table.2.b[-length(table.2.b)] 
table.2.c <- table.2[seq(3,length(table.2),3)]
table.2.c <- table.2.c[-length(table.2.c)]

table.1$firsthalf <- table.2.b
table.1$secondhalf <- table.2.c

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM