私はいくつかのウェブスクレイピングを行っています。
actual_price を取得し、old_price を別の列に入れる必要があります。
問題は、新しい製品であるため、すべての製品に old_price 要素があるわけではないことです。
そして、それらは同じ長さではないため、data.frame に結合できません。
商品にold_priceがない場合、セルにNAを入れたいです。
Rvestでそれを行う方法はありますか?
期待される結果:
Product PriceNew PriceOld
A 2300.00 NA
B 9.90 49.00
C 1299.00 2499.00
D 829.00 1499.00
![ここに画像の説明を入力][1]
ご覧のとおり、ここに例があります。1 つの製品には実際の価格と古い価格があり、もう 1 つの製品にはありません。
私はこれをやっています:
Celulares_Telefonia_Precio_actual <- html(page_source[[1]]) %>%
html_nodes(".product-itm-price-new") %>%
html_text()
Celulares_Telefonia_Precio_antiguo <- html(page_source[[1]]) %>%
html_nodes(".product-itm-price-old") %>%
html_text()
すべての製品に価格が設定されていますが、すべての製品に古い価格が設定されているわけではありません。したがって、新しい価格のみの製品については、Old_Price 列に NA を入れたいと思います。
length(Celulares_Telefonia_Precio_actual) gives 120
length(Celulares_Telefonia_Precio_antiguo) gives 114
編集1:
状況を再現するコード。Celulares セクション用です。
Gist を実行してデータを取得してください:
library(devtools)
source_gist("https://gist.github.com/OmarGonD/b70b712327d7e479f2c7")
編集2:
容器全体(商品ブランド、商品名、新価格、旧価格)を調べてみました。SelectorGadget を使用すると、コンテナー全体が次のようになっていることがわかります"#catalog-items"
(間違っている場合は修正してください)。
だから私は使用します:
Celulares_Telefonia_Catalogo <- html(page_source[[1]]) %>%
html_nodes("#catalog-items")
しかし、質問にあるように、新旧の価格を抽出する方法がわかりません。
どんなヒントでも大歓迎です。