如何从RVest中的元素中获取ID?

时间:2018-08-27 02:48:01

标签: r web-scraping data-science rvest

此页面上的每个div.grpl-grp clearfix(每个俱乐部元素)都有自己的ID:

https://uws-community.symplicity.com/index.php?s=student_group

我正在尝试抓取这些ID中的每个ID,但是如下所示的当前方法不起作用。我在做什么错了?

url <- 'https://uws-community.symplicity.com/index.php?s=student_group'
page <- html_session(url)

id_nodes <- html_nodes(page, "div.grpl-grp clearfix") %>% html_attrs("id")

我需要使用HTML会话,因为我正在抓取需要会话的其他数据。

1 个答案:

答案 0 :(得分:2)

您需要在代码中进行两项更改。

  1. 该类必须被称为“ div.grpl-grp.clearfix”
  2. 您应该使用html_attr

    library(rvest)
    url <- 'https://uws-community.symplicity.com/index.php?s=student_group'
    page <- html_session(url)
    html_nodes(page, "div.grpl-grp.clearfix") %>% html_attr("id")
    
    
    #[1] "grpl_5bf9ea61bc46eaeff075cf8043c27c92" 
    #[2] "grpl_17e4ea613be85fe019efcf728fb6361d"
    #[3] "grpl_d593eb48fe26d58f616515366a1e677b" 
    #[4] "grpl_5b445690da34b7cff962ee2bf254db9e"
    #[5] "grpl_cd1ebcef22852bdb5301a243803a2909" 
    ....
    

或者如果您想一链做每件事

url %>%
   read_html() %>%
   html_nodes("div.grpl-grp.clearfix") %>%
   html_attr("id")

#[1]"grpl_5bf9ea61bc46eaeff075cf8043c27c92" "grpl_17e4ea613be85fe019efcf728fb6361d"
#[3]"grpl_d593eb48fe26d58f616515366a1e677b" "grpl_5b445690da34b7cff962ee2bf254db9e"
#[5]"grpl_cd1ebcef22852bdb5301a243803a2909" "grpl_0a7da33f968a919ecfa06486f0787bc7"