我正在尝试rvest
学习使用 R 进行网页抓取。我正在尝试为页面的其他几个部分复制乐高示例并使用selector gadget
to id.
我从中提取了示例R Studio 教程 http://blog.rstudio.org/2014/11/24/rvest-easy-web-scraping-with-r/。对于下面的代码,1 和 2 有效,但 3 无效。
library(rvest)
lego_movie <- html("http://www.imdb.com/title/tt1490017/")
# 1 - Get rating
lego_movie %>%
html_node("strong span") %>%
html_text() %>%
as.numeric()
# 2 - Grab actor names
lego_movie %>%
html_nodes("#titleCast .itemprop span") %>%
html_text()
# 3 - Get Meta Score
lego_movie %>%
html_node(".star-box-details a:nth-child(4)") %>%
html_text() %>%
as.numeric()
我并没有真正了解所有管道和相关代码,因此可能有一些新的奇特工具可以做到这一点......但鉴于上面的答案让您"83/100"
,你可以这样做:
as.numeric(unlist(strsplit("83/100", "/")))[1]
[1] 83
我想管道看起来会是这样的:
lego_movie %>%
html_node(".star-box-details a:nth-child(4)") %>%
html_text(trim=TRUE) %>%
strsplit(., "/") %>%
unlist(.) %>%
as.numeric(.) %>%
head(., 1)
[1] 83
或者正如弗兰克所建议的,您可以评估表达式"83/100"
类似的东西:
lego_movie %>%
html_node(".star-box-details a:nth-child(4)") %>%
html_text(trim=TRUE) %>%
parse(text = .) %>%
eval(.)
[1] 0.83
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)