2017-07-30 10 views
0

私はウェブスクレイピングには新しいので、楽しみのためにkeurigウェブサイトを掻き集め、販売するkカップのいくつかに関する情報を抽出することによって学びたいと思っていました。私の目標は、kカップのページに行き、すべてのkカップをクリックして、カフェイン、ローストカラー、および起源のような情報を抽出します。私は後でそれに取り組むことができます。私はCSSを見つけたり、オブジェクトをクリックして余分な情報を取得するプロセスを自動化する方法を見つけるのに苦労しています。私はこれをしました:Rをクリックしてリンクをクリックする必要があるウェブデータをスクラップする方法は?

library(rvest) 
keurig <- read_html("http://www.keurig.com/beverages/k-cup-pods") 
# Grab the CSS Nodes from the website 
keurig.html <- html_nodes(keurig, ".keurig_card") 
keurig.text <- html_text(keurig.html) 
# Print the text 
keurig.text 

多くのタブと改行文字の間にいくつかのコーヒー名を入れてしまいました。すべてのkカップについての情報を取得するために、このデータをどのくらい正確に掻き分けますか?

+1

それは(私はキューリグ製にアクセスすることができない非構造化データである場合。 com)、あなたは正規表現を使用する必要があります。 https://stackoverflow.com/documentation/r/1123/pattern-matching-and-replacement#t=201707310419474805317 CSS-Tagに関連する正規表現がかなりうまくいくと思います。 – Jan

答えて

1

は、すべての項目のリンクを取得するために使用します:

library(rvest) 
keurig <- read_html("http://www.keurig.com/beverages/k-cup-pods") 
keurig.html <- html_nodes(keurig, ".product_name") 
links = html_attr(keurig.html, name = "href") 

すべての項目へのリンクが含まれているクラスがproduct_nameです。 ノードを取得したら、hrefプロパティを抽出します。

結果(最初の4つを示す):次に

[1] "/Beverages/Coffee/Regular/Breakfast-Blend-Coffee/p/Breakfast-Blend-Coffee-K-Cup-Green-Mountain"       
[2] "/Beverages/Coffee/Regular/Dark-Magic%C2%AE-Extra-Bold-Coffee/p/Dark-Magic-Extra-Bold-Coffee-K-Cup-Green-Mountain"   
[3] "/Beverages/Coffee/Regular/The-Original-Donut-Shop%C2%AE-Coffee/p/Original-Donut-Shop-Extra-Bold-Coffee-K-Cup-CP"   
[4] "/Beverages/Coffee/Regular/Nantucket-Blend%C2%AE-Coffee/p/Nantucket-Blend-Coffee-K-Cup-Green-Mountain" 

各ケーキの詳細ページへのリンクを作成するためにpaste0を使用します。

paste0("http://www.keurig.com/beverages/k-cup-pods", 
     "/Beverages/Coffee/Regular/Breakfast-Blend-Coffee/p/Breakfast-Blend-Coffee-K-Cup-Green-Mountain") 
関連する問題