如何搜索R中特定类的Html代码?

时间:2018-02-16 04:12:29

标签: html r xml html-parsing rvest

在R中是否有任何好的方法可以检查班级是否存在于更大的班级;让我们说我的Html代码看起来像这样:



<!DOCTYPE html>
<html>

<head>
  <title>Page Title</title>
</head>

<body>

  <div class="Parent class">
    <span class="Children one"></span>
    <span class="Children two"></span>
    <span class="Children three"></span>
  </div>

  <div class="Parent class">
    <span class="Children two"></span>
    <span class="Children three"></span>
    <span class="Children four "></span>
  </div>

  <div class="Parent class">
    <span class="Children three"></span>
    <span class="Children one"></span>
    <span class="Children six "></span>
  </div>


</body>

</html>
&#13;
&#13;
&#13;

我想知道这个班级&#34;儿童一个&#34;确实存在于&#34;父类&#34;或没有;所以我的最终结果将是这样的,或者任何东西都可以表明课程页面的存在与否。

which(Parent class %in%  Children one)
[1] TRUE FALSE TRUE

1 个答案:

答案 0 :(得分:1)

当然!其中html是HTML代码的字符串,文件路径或网址,

library(rvest)
library(purrr)

html %>% 
    read_html() %>% 
    html_nodes('.Parent') %>% 
    map_lgl(~length(html_nodes(.x, '.one')) > 0)
#> [1]  TRUE FALSE  TRUE

但是,请注意,类在HTML中不能包含空格,或者它被计为两个类;因此CSS选择器.Parent,然后是.one。如果您愿意,可以每次使用.Parent.class.Children.one搜索这两个课程。