⚫︎RにはWebページの公開されたテキスト情報を収集することができる。ウェブスクレイピング(Web scraping)という。ウェブサイトから情報を抽出するコンピュータソフトウェア技術である。簡単に解説する。

1 準備するもの

knitr::opts_chunk$set(
echo=TRUE, # chunk内の命令⽂表⽰の有無
eval=TRUE, # chunk内の実⾏内容表⽰有無
warning=FALSE, # 実⾏時の警告表⽰の有無
message=FALSE # Library読み込み等のメッセージ表⽰の有無
)
#install.packages("rvest")  <-- インストール後,#追加
library(rvest)
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.2     ✔ readr     2.1.4
## ✔ forcats   1.0.0     ✔ stringr   1.5.0
## ✔ ggplot2   3.4.2     ✔ tibble    3.2.1
## ✔ lubridate 1.9.2     ✔ tidyr     1.3.0
## ✔ purrr     1.0.1     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter()         masks stats::filter()
## ✖ readr::guess_encoding() masks rvest::guess_encoding()
## ✖ dplyr::lag()            masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors

2 Jalanサイト

2.1 URL指定

data_1 <- read_html("https://www.jalan.net/420000/LRG_420200/?screenId=UWW1402&distCd=01&activeSort=0&mvTabFlg=1&rootCd=04&stayYear=2023&stayMonth=6&stayDay=16&stayCount=1&roomCount=1&adultNum=2&roomCrack=200000&kenCd=420000&lrgCd=420200&vosFlg=6&idx=0",encoding = "cp932")

#h2 <- read_html(url2,encoding = "cp932") 
#h2 <- read_html(url2,encoding = "Shift_JISX0213") ok
#h2 <- read_html(url2,encoding = "Windows-31J") ok
#h2 <- read_html(url2,encoding = "utf8") no

data_2 <- read_html("https://www.jalan.net/420000/LRG_420200/page2.html?screenId=UWW1402&distCd=01&activeSort=0&mvTabFlg=1&rootCd=04&stayYear=2023&stayMonth=6&stayDay=16&stayCount=1&roomCount=1&adultNum=2&roomCrack=200000&kenCd=420000&lrgCd=420200&vosFlg=6&idx=30",encoding = "cp932")
data_3 <- read_html("https://www.jalan.net/420000/LRG_420200/page3.html?screenId=UWW1402&distCd=01&activeSort=0&mvTabFlg=1&rootCd=04&stayYear=2023&stayMonth=6&stayDay=16&stayCount=1&roomCount=1&adultNum=2&roomCrack=200000&kenCd=420000&lrgCd=420200&vosFlg=6&idx=30",encoding = "cp932")

name_point_1 <- html_nodes(data_1,".p-searchResultItem__facilityName,.p-searchResultItem__summaryaverage-num") %>% html_text()
name_point_2 <- html_nodes(data_2,".p-searchResultItem__facilityName,.p-searchResultItem__summaryaverage-num") %>% html_text()
name_point_3 <- html_nodes(data_3,".p-searchResultItem__facilityName,.p-searchResultItem__summaryaverage-num") %>% html_text()

#.p-searchResultItem__summaryaverage-num , .p-searchResultItem__facilityName

2.2 情報を表示する

head(name_point_1)
## [1] "アパホテル〈長崎駅南〉"                          
## [2] "i+Land nagasaki (旧名称:長崎温泉やすらぎ伊王島)"
## [3] "4.4"                                             
## [4] "hotel H2 ホテルエイチツー長崎"          
## [5] "4.5"                                             
## [6] "天然温泉 鶴港の湯 ドーミーインPREMIUM長崎駅前"
head(name_point_2)
## [1] "アパホテル〈長崎駅南〉"                       
## [2] "ホテル長崎"                                   
## [3] "3.9"                                          
## [4] "喜々津ステーションホテル"                     
## [5] "4.4"                                          
## [6] "にっしょうかん新館梅松鶴(HMIホテルグループ)"
head(name_point_3)
## [1] "アパホテル〈長崎駅南〉"                       
## [2] "ホテル長崎"                                   
## [3] "3.9"                                          
## [4] "喜々津ステーションホテル"                     
## [5] "4.4"                                          
## [6] "にっしょうかん新館梅松鶴(HMIホテルグループ)"

3 Rakuten Travelサイト

3.1 URL指定

data_11 <- read_html("https://travel.rakuten.co.jp/yado/nagasaki/nagasaki.html",encoding = "utf-8")
data_12 <- read_html("https://search.travel.rakuten.co.jp/ds/yado/nagasaki/nagasaki-p2",encoding = "utf-8")
data_13 <- read_html("https://search.travel.rakuten.co.jp/ds/yado/nagasaki/nagasaki-p3",encoding = "utf-8")
data_14 <- read_html("https://search.travel.rakuten.co.jp/ds/yado/nagasaki/nagasaki-p4",encoding = "utf-8")
data_15 <- read_html("https://search.travel.rakuten.co.jp/ds/yado/nagasaki/nagasaki-p5",encoding = "utf-8")

name_point_11 <- html_nodes(data_11,"h1, strong") %>% html_text()
name_point_12 <- html_nodes(data_12,"h1, strong") %>% html_text()
name_point_13 <- html_nodes(data_13,"h1, strong") %>% html_text()
name_point_14 <- html_nodes(data_14,"h1, strong") %>% html_text()
name_point_15 <- html_nodes(data_15,"h1, strong") %>% html_text()

#.p-searchResultItem__summaryaverage-num , .p-searchResultItem__facilityName

3.2 情報を表示する

head(name_point_11)
## [1] "\n\t\t\t\t\t長崎 ホテル・旅館\n\t\t\t\t"                                                                                                                                                                                                                                                                                                                       
## [2] "稲佐山観光ホテル\n                こちらの宿泊施設は、宿泊者からの総合評価点数が高い、もしくは多くの宿泊実績がある等の独自の条件を満たしたプリファードプログラム参加施設です。楽天トラベルへサービス利用料を支払うことにより、原則同条件の他の施設よりも上位に表示されています。(ヘルプページ参照)\n            "                                            
## [3] "4.26"                                                                                                                                                                                                                                                                                                                                                          
## [4] "CANDEO HOTELS(カンデオホテルズ)長崎新地中華街\n                こちらの宿泊施設は、宿泊者からの総合評価点数が高い、もしくは多くの宿泊実績がある等の独自の条件を満たしたプリファードプログラム参加施設です。楽天トラベルへサービス利用料を支払うことにより、原則同条件の他の施設よりも上位に表示されています。(ヘルプページ参照)\n            "
## [5] "4.38"                                                                                                                                                                                                                                                                                                                                                          
## [6] "THE GLOBAL VIEW 長崎\n                こちらの宿泊施設は、宿泊者からの総合評価点数が高い、もしくは多くの宿泊実績がある等の独自の条件を満たしたプリファードプログラム参加施設です。楽天トラベルへサービス利用料を支払うことにより、原則同条件の他の施設よりも上位に表示されています。(ヘルプページ参照)\n            "
head(name_point_12)
## [1] "\n\t\t\t\t\t長崎 ホテル・旅館\n\t\t\t\t"                                                                                                                                                                                                                                                                               
## [2] "稲佐山観光ホテル\n                こちらの宿泊施設は、宿泊者からの総合評価点数が高い、もしくは多くの宿泊実績がある等の独自の条件を満たしたプリファードプログラム参加施設です。楽天トラベルへサービス利用料を支払うことにより、原則同条件の他の施設よりも上位に表示されています。(ヘルプページ参照)\n            "    
## [3] "4.26"                                                                                                                                                                                                                                                                                                                  
## [4] "ルークプラザホテル\n                こちらの宿泊施設は、宿泊者からの総合評価点数が高い、もしくは多くの宿泊実績がある等の独自の条件を満たしたプリファードプログラム参加施設です。楽天トラベルへサービス利用料を支払うことにより、原則同条件の他の施設よりも上位に表示されています。(ヘルプページ参照)\n            "  
## [5] "4.31"                                                                                                                                                                                                                                                                                                                  
## [6] "ビクトリア・イン長崎\n                こちらの宿泊施設は、宿泊者からの総合評価点数が高い、もしくは多くの宿泊実績がある等の独自の条件を満たしたプリファードプログラム参加施設です。楽天トラベルへサービス利用料を支払うことにより、原則同条件の他の施設よりも上位に表示されています。(ヘルプページ参照)\n            "
head(name_point_13)
## [1] "\n\t\t\t\t\t長崎 ホテル・旅館\n\t\t\t\t"                                                                                                                                                                                                                                                                                 
## [2] "稲佐山観光ホテル\n                こちらの宿泊施設は、宿泊者からの総合評価点数が高い、もしくは多くの宿泊実績がある等の独自の条件を満たしたプリファードプログラム参加施設です。楽天トラベルへサービス利用料を支払うことにより、原則同条件の他の施設よりも上位に表示されています。(ヘルプページ参照)\n            "      
## [3] "4.26"                                                                                                                                                                                                                                                                                                                    
## [4] "ホテルパサージュ琴海\n                こちらの宿泊施設は、宿泊者からの総合評価点数が高い、もしくは多くの宿泊実績がある等の独自の条件を満たしたプリファードプログラム参加施設です。楽天トラベルへサービス利用料を支払うことにより、原則同条件の他の施設よりも上位に表示されています。(ヘルプページ参照)\n            "  
## [5] "4.29"                                                                                                                                                                                                                                                                                                                    
## [6] "グランドベース長崎中町\n                こちらの宿泊施設は、宿泊者からの総合評価点数が高い、もしくは多くの宿泊実績がある等の独自の条件を満たしたプリファードプログラム参加施設です。楽天トラベルへサービス利用料を支払うことにより、原則同条件の他の施設よりも上位に表示されています。(ヘルプページ参照)\n            "
head(name_point_14)
## [1] "\n\t\t\t\t\t長崎 ホテル・旅館\n\t\t\t\t"                                                                                                                                                                                                                                                                                       
## [2] "稲佐山観光ホテル\n                こちらの宿泊施設は、宿泊者からの総合評価点数が高い、もしくは多くの宿泊実績がある等の独自の条件を満たしたプリファードプログラム参加施設です。楽天トラベルへサービス利用料を支払うことにより、原則同条件の他の施設よりも上位に表示されています。(ヘルプページ参照)\n            "            
## [3] "4.26"                                                                                                                                                                                                                                                                                                                          
## [4] "長崎ホテル異邦館\n                こちらの宿泊施設は、宿泊者からの総合評価点数が高い、もしくは多くの宿泊実績がある等の独自の条件を満たしたプリファードプログラム参加施設です。楽天トラベルへサービス利用料を支払うことにより、原則同条件の他の施設よりも上位に表示されています。(ヘルプページ参照)\n            "            
## [5] "1.50"                                                                                                                                                                                                                                                                                                                          
## [6] "民宿旅館 たんぽぽ<長崎県>\n                こちらの宿泊施設は、宿泊者からの総合評価点数が高い、もしくは多くの宿泊実績がある等の独自の条件を満たしたプリファードプログラム参加施設です。楽天トラベルへサービス利用料を支払うことにより、原則同条件の他の施設よりも上位に表示されています。(ヘルプページ参照)\n            "
head(name_point_15)
## [1] "\n\t\t\t\t\t長崎 ホテル・旅館\n\t\t\t\t"                                                                                                                                                                                                                                                                                 
## [2] "稲佐山観光ホテル\n                こちらの宿泊施設は、宿泊者からの総合評価点数が高い、もしくは多くの宿泊実績がある等の独自の条件を満たしたプリファードプログラム参加施設です。楽天トラベルへサービス利用料を支払うことにより、原則同条件の他の施設よりも上位に表示されています。(ヘルプページ参照)\n            "      
## [3] "4.26"                                                                                                                                                                                                                                                                                                                    
## [4] "おやど紀伊国屋 五島町\n                こちらの宿泊施設は、宿泊者からの総合評価点数が高い、もしくは多くの宿泊実績がある等の独自の条件を満たしたプリファードプログラム参加施設です。楽天トラベルへサービス利用料を支払うことにより、原則同条件の他の施設よりも上位に表示されています。(ヘルプページ参照)\n            "
## [5] "4.00"                                                                                                                                                                                                                                                                                                                    
## [6] "Oyado梅\n                こちらの宿泊施設は、宿泊者からの総合評価点数が高い、もしくは多くの宿泊実績がある等の独自の条件を満たしたプリファードプログラム参加施設です。楽天トラベルへサービス利用料を支払うことにより、原則同条件の他の施設よりも上位に表示されています。(ヘルプページ参照)\n            "