2689977 ランダム
 HOME | DIARY | PROFILE 【フォローする】 【ログイン】

One of my favorite things is ...

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
2019.09.08
XML
カテゴリ:データ分析
​​​​​​​​
 ​楽天市場ランキング上位のメンズ・ボトムス、MONO-MARTの「チノパンツ」の商品レビューの分析をしました。レビュー数は、4600件を超えていますが、今回はスクレイピング可能な1500件のうち375件のレビューデータを取得しました(ページ送りのステップ数を4に設定)。​

 「はきやすさ」「はき心地」「値段」が評価されているようです。


バリエーションが豊富です


 今回スクレイピングした375件で、「購入した回数」が「はじめて」というレビューが177件となっていて、「リピート」の61件よりも多くなっています。


▼レビュー(375件)の性・年代別件数

 40代と50代が、レビュー投稿者の中心になっています。




▼「購入した回数」

 「はじめて」が177件と多くなっています。


▼レビューの日別推移

 レビュー投稿の時期は、春、秋がやや多いようです。



▼レビュー件数の月別推移
 
 スクレイピングしたレビューには、2013年のものも含まれていました。



▼レビューの見出し:「はじめて」購入した人

 「はきやすさ」「はき心地」「価格」などが評価されています。




▼レビューの見出し:「リピート」購入した人




◆今回の「R言語」でのスクレイピングコード:ファッション商品(ボトムス)用
----------------------------------------------------------------------------
library(pipeR)
library(textreadr)
library(RCurl) 
library(XML)
library(tidyverse)
library(rvest)
library(lubridate)
library(purrr)
library(ggsci)
library(gridExtra)


url_txt <- "https://review.rakuten.co.jp/item/1/257982_10002304/"
pages_num <- 100
get_r_reviews  <- NULL
df_reviews   <- NULL
for(i in seq(1, pages_num, by = 4)) {
  url <- paste0(url_txt,i,'.','1/')
  page <- read_html(url)
  
  get_r_reviews <- page %>% 
    html_nodes ('.hreview')  %>%    
    map_df(~list( name = html_nodes(.x, '.reviewer') %>% 
                    html_text(.,trim = FALSE) %>% 
                    {if(length(.) == 0) NA else .}, 
                  title = html_nodes(.x, '.summary') %>% 
                    html_text(.,trim = FALSE) %>% 
                    {if(length(.) == 0) NA else .}, 
                  stars = html_nodes(.x, '.value') %>% 
                    html_text() %>% 
                    {if(length(.) == 0) NA else .}, 
                  date = html_nodes(.x, '.dtreviewed') %>% 
                    html_text() %>% 
                    {if(length(.) == 0) NA else .}, 
                  reviews = html_nodes(.x, '.description') %>% 
                    html_text(.,trim = FALSE) , 
                  helpful = html_nodes(.x, '.revEntryAnsNum') %>%
                    html_text(.,trim = FALSE) %>%
                    {if(length(.) == 0) NA else .} ,
                  age_sex = html_nodes(.x, '.revUserFaceDtlTxt') %>% 
                    html_text(.,trim = FALSE) %>% 
                    str_replace_all(., "購入者|レビュー投稿.*|.*件","") %>%
                    str_replace_all(., " ","") %>%
                    str_trim(., side = "both") ,
                  sex = html_nodes(.x, '.revUserFaceDtlTxt') %>% 
                    html_text(.,trim = FALSE) %>% 
                    str_replace_all(., "購入者|レビュー投稿.*|.*件|.*代|以上","") %>%
                    str_replace_all(., "レビュー投稿.*","") %>%
                    str_replace_all(., " ","") %>%
                    str_trim(., side = "both") ,
                  age = html_nodes(.x, '.revUserFaceDtlTxt') %>% 
                    html_text(.,trim = FALSE) %>% 
                    str_replace_all(., "購入者|レビュー投稿|.*件|男性|女性","") %>%
                    str_replace_all(., " ","") %>%
                    str_trim(., side = "both") , 
                  posts = html_nodes(.x, '.revUserFaceDtlTxt') %>% 
                    html_text(.,trim = FALSE) %>% 
                    str_replace_all(., ".*代.*|購入者|レビュー投稿|件","") %>%
                    str_replace_all(., " ","") %>%
                    str_trim(., side = "both") ,
                  size = html_nodes(.x, '.revRvwUserDisp') %>% 
                    html_text(.,trim = FALSE) %>% 
                    str_replace_all(., "利用者サイズ:|商品を使う人.*|購入した回数.*|商品の使いみち:.*","") %>%
                    str_replace_all(., " ","") %>%
                    str_replace_all(., " ","") %>%
                    str_trim(., side = "both") ,
                  usage1 = html_nodes(.x, '.revRvwUserDisp') %>% 
                    html_text(.,trim = FALSE) %>% 
                    str_replace_all(., "利用者サイズ:.*|ボトムス.*|商品を使う人.*|購入した回数.*|商品の使いみち:","") %>%
                    str_replace_all(., " ","") %>%
                    str_replace_all(., " ","") %>%
                    str_trim(., side = "both") ,
                  usage2 = html_nodes(.x, '.revRvwUserDisp') %>% 
                    html_text(.,trim = FALSE) %>% 
                    str_replace_all(., "利用者サイズ:.*|ボトムス.*|商品の使いみち.*|購入した回数.*|商品を使う人:","") %>%
                    str_replace_all(., " ","") %>%
                    str_replace_all(., " ","") %>%
                    str_trim(., side = "both") ,
                 usage3 = html_nodes(.x, '.revRvwUserDisp') %>% 
                    html_text(.,trim = FALSE) %>% 
                    str_replace_all(., "利用者サイズ:.*|ボトムス.*|商品の使いみち.*|商品を使う人.*|購入した回数:","") %>%
                    str_replace_all(., " ","") %>%
                   str_replace_all(., " ","") %>%
                   str_trim(., side = "both") 
         ))
    df_reviews <- rbind(df_reviews, get_r_reviews)
  
    print(i)
    
    Sys.sleep(5)
}
view(df_reviews)
write.csv(df_reviews,"rakuten_reviews.csv")
df_r <- read.csv("rakuten_reviews.csv",header = TRUE, na.strings=c("","NA"))
write.csv(df_r ,"rakuten_reviews.csv")
view(df_r)
​​​​​​​-------------------------------------------------------------------------

☆関連記事​
▼楽天市場のランキング上位の「zootie:エアパンツ」の商品レビューをテキストマイニングしてみました:「ファッションジャンル商品対応版のRコード」でスクレイピング

▼【再改訂版コード】:「R言語」による楽天市場の商品レビューのスクレイピングコードの再改訂版:グラフ作成コードなどを追加:「素焼きアーモンド」の商品レビューのデータを取得:意外と多い「はじめて」の購入

▼「R言語」による楽天市場の商品レビューのスクレイピングコードの改訂版です:Excelで項目を切り分ける作業が不要になりました

▼楽天市場の
特定の商品のレビューを「R言語」でスクレイピングするコード:一部の項目の空欄・欠損値(missing values)を「NA」に置き換えてデータフレームを作成:継ぎはぎのコードですが・・・


▼JPRiDEの新モデル・完全ワイヤレスイヤホン「JPRiDE TWS-520」のアマゾン・カスタマーレビューのテキストを分析

▼「JPRiDE」ブランドのワイヤレスイヤホン「JPRiDE 708」の楽天市場のレビューのテキストを分析:ReviewMetaでアマゾンのカスタマーレビューの信頼性の高さを推定できるJPRiDEの製品​​

▼雑誌など第3者の高評価をアピールしている「JPRiDE(ジェイピー・ライド)」ブランドのワイヤレスイヤホン「JPA2」の楽天市場のレビューのテキスト分析です


▼JVCケンウッドの高評価イヤホン「HA-FX3X」とソニーの「MDR-EX450」のカスタマーレビューを比較

▼3000円クラスの高評価イヤホン「HA-FX3​のカスタマーレビューのテキスト分析を「User Local」の「AIテキストマイニング」で行ってみました:こんな分析ツールがあったとは、驚きです

▼カスタマーレビュー分析で、Microsoft Power BIの「Word Cloud」とスライサーの組み合わせは便利です:3000円クラスで、高評価のイヤホン「HA-FX3X」のカスタマーレビューのテキスト分析

▼アマゾンのカスタマーレビューを購入の判断材料にする場合、「ReviewMeta」(レビューメータ)によるチェックが役立ちます


​▼先日購入したイヤホン「HA-FX3X」のアマゾン・カスタマーレビュー分析:低音の良さ、コスパなどが高評価の理由のようです​:3000円クラスで、高評価のイヤホンです​
 ​​​​​​​​



[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

Rではじめるデータサイエンス [ Hadley Wickham ]
価格:4320円(税込、送料無料) (2019/9/14時点)



​​





お気に入りの記事を「いいね!」で応援しよう

Last updated  2019.11.07 16:57:32
コメント(0) | コメントを書く


PR

Recent Posts

Free Space







Rebatesお友達紹介キャンペーン

​​​​

Category

Archives

Comments

digital_21@ Re[1]:◆【新型コロナ】やっぱり、PCR検査(08/02) 背番号のないエース0829さんへ すてきな内…
背番号のないエース0829@ Re:◆【新型コロナ】やっぱり、PCR検査 「日本一遅い成人式が、無事終了 !!」に、…

Keyword Search

▼キーワード検索

Rakuten Card


© Rakuten Group, Inc.