r - 使用RSelenium在表格中抓取背景颜色?
问题描述
在网站上看起来像这样,第一列是不同职业的名称(丹麦语),第二和第三行是颜色指示器
因此,我希望制作一个看起来像这样的表格:
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®ion=%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
推荐阅读
- java - TCP 服务器,多个会话,每个会话无限期的客户端,在运行时接受新客户端
- python - 使用正则表达式在python中的文件中查找多个出现
- c++ - 在 OpenMP 中使用字符串类型进行缩减
- string - 未为“字符串”输入定义使用 dir 函数的错误
- android - 从代码调用时屏幕记录不起作用
- scala - akka 流将 akka-htpp Web 请求调用集成到流中
- c# - 通过单击按钮从列表中删除
- amazon-web-services - 如何在单个 S3 存储桶中的 2 个文件夹上创建 2 个 SNS 主题?
- javascript - JQuery - 如何调用嵌入在 SVG 中的函数
- java - 在 Java 中预加载图像