【问题标题】:How to scrape id from an element in rvest?如何从 rvest 中的元素中刮取 id?
【发布时间】:2018-08-27 02:48:00
【问题描述】:
此页面上的每个 div.grpl-grp clearfix(每个俱乐部元素)都有自己的 id:
https://uws-community.symplicity.com/index.php?s=student_group
我正在尝试抓取每个 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 会话,因为我正在抓取我需要会话的其他数据。
【问题讨论】:
标签:
r
web-scraping
data-science
rvest
【解决方案1】:
您需要在代码中进行两项更改。
- 该类必须被称为“div.grpl-grp.clearfix”
-
你应该使用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"