One of my favorite things is ...

2019/11/07(木)16:57

▼楽天市場ランキング上位のメンズ・ボトムスの商品レビューの分析をしました:「R言語」によるスクレイピング

データ分析(577)

​​​​​​​​ ​楽天市場ランキング上位のメンズ・ボトムス、MONO-MARTの「チノパンツ」の商品レビューの分析をしました。レビュー数は、4600件を超えていますが、今回はスクレイピング可能な1500件のうち375件のレビューデータを取得しました(ページ送りのステップ数を4に設定)。​  「はきやすさ」「はき心地」「値段」が評価されているようです。 ​S M L XL 選べる2TYPE チノパン シルエット テーパード スキニー スキニーパンツ 上質 カツラギ ボトムス ストレッチ 品質 メンズファッション チノパンツ 夏 メンズ モノマート 価格:1998円(税別、送料別)(2019/9/8時点)楽天で購入バリエーションが豊富です​  今回スクレイピングした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 <- 100get_r_reviews  <- NULLdf_reviews   <- NULLfor(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グラフィックスクックブック ggplot2によるグラフ作成のレシピ集 [ ウィンストン・チャン ] 価格:3672円(税込、送料無料) (2019/9/14時点) Rではじめるデータサイエンス [ Hadley Wickham ] 価格:4320円(税込、送料無料) (2019/9/14時点) ​​​

続きを読む

このブログでよく読まれている記事

もっと見る

総合記事ランキング

もっと見る