rvest - 单独列出清单和存储物品

时间:2016-08-22 05:34:36

标签: r rvest

我正试图从网页上抓取信息:

rm(list = ls())

library(rvest)
library(XML)
library(dplyr)

utils::setInternet2(TRUE)
options(download.file.method = "internal")

url <-"http://www.home24.at/smood/premium-komfortmatratze-smood-180-x-200cm"

pgsession <- html_session(url)               ## create session
pgform    <- html_form(pgsession)[[1]]       ## pull form from session

pflege <- pgsession %>% 
               jump_to(url) %>% 
               read_html() %>% html_nodes(xpath="//*[@id='product-details']/div/div[2]/div[2]/div[2]/div[5]/ul") %>% 
               html_text()

我得到的结果如下:

"Doppeltuchbezug bis 95°C waschbarWebstoffbezug kann in die Reinigung gegeben werden"

但是,我希望得到这样的结果,因此每个列表项都是分开的:

"Doppeltuchbezug bis 95°C waschbar", "Webstoffbezug kann in die Reinigung gegeben werden"

有关如何分别划分字符串并单独删除每个列表项的任何建议吗?

1 个答案:

答案 0 :(得分:3)

您只需要使用XPath或CSS选择器来选择所需的两个元素。要查找适当的选择器,请在Web浏览器中检查HTML;自动生成的很少是最优的。

# pull page once and store in case you want to parse multiple elements
page <- pgsession %>% jump_to(url) %>% read_html()

page %>% html_nodes(xpath = '//*[@data-reactid="350"]/li') %>% html_text()

## [1] "Doppeltuchbezug bis 95°C waschbar"                 
## [2] "Webstoffbezug kann in die Reinigung gegeben werden"