2016-08-22 6 views
2

私は、Webページからの情報をこすりしようとしています:rvest - スクレイプリストや店舗の項目を別々

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

しかし、私はしたいと思います:

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 waschbar", "Webstoffbezug kann in die Reinigung gegeben werden" 

個々のリスト項目を個別にスクラップしますか?

答えて

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"