【番外編】スプレッドシートで食べログスクレイピング@Glide
こちらの一連の記事は、Sabinukyリリースまでに私たちのとった行動や検討内容をまとめたものです。悩んだこと、起こった問題等全て実話に沿って記載しています。
どうも、こんにちは〜!まいこさま@Saninukyです!今回はサービスの根幹である、お店を登録する機能において「全部手入力するのはめんどいよね〜」という声からGlideのスプレッドシート上でスクレイピングをして情報を取ってくることはできないか?について調査及び実装してみた結果をお伝えします。
スクレイピングとは
すばり簡単にいうと『WEBサイト上の情報をとってくる技術』のこと です。今回欲しい情報はレストラン等のお店の名前や住所等ですのでそれらが得られる食べログからの取得を試みました!みなさま実際に実施される際は情報解析目的の利用にとどめ、robots.txtに書いてある利用規約をしっかり読んで違反しないようにしましょう。
利用するスプレッドシートの関数
コードを書くような開発の場合は、pythonに便利なライブラリがあったりするのでそちらを利用するのがオススメですが、今回はノーコード(かつglide)ということでスプレッドシート内で使える関数を使って実装してみました。使った関数はコチラ↓
importxml(WebサイトのURL,"webサイト上の住所(=xpath)")
こちらをセルの中に記載すると、URL先にあるサイトから住所の場所にある情報を引っ張ってきてくれます!一行書くだけでスクレイピングができるのは便利!
実際に取得してみた
個人的に美味しいもつ刺しが食べられて超おすすめなお店、『もつ焼き煮込み鶴田』の食べログ上の情報を例として取得します。
まずはWebサイトのURLは以下を設定。(あぁもう美味しそう・・・)
次はWebサイト上の欲しい情報の住所を確認していきます。方法はいくつかあると思いますが、Chromeでの取得方法を記載します。
1. 該当のサイトの欲しい情報をドラック→右クリック→検証 をクリック
2. デベロッパーツールが開くので欲しい情報が含まれる箇所を右クリック → Copy → Copy Xpath で取得完了
実際に取得した住所(Xpath)はこちら↓
//*[@id="rst-data-head"]/table[1]/tbody/tr[1]/td
ここまで合わせるとこんな感じ↓
=importxml(https://tabelog.com/tokyo/A1310/A131002/13195676/,"//*[@id='rst-data-head']/table[1]/tbody/tr[1]/td")
※""のなかのxpathの"(ダブル)は'(シングル)に変換してください!構文エラーになります
これをスプレッドシート内のセルに入力すると・・・
もつ焼き煮込み鶴田
お店の名前が取れました〜!同じ要領で住所の取得も可能です!
問題点
スプレッドシートを開くたび取得がはしるので、数が多くなるとデータの取得時間が長くなってしまいます>< 少量ならいいですが、実用には耐えられないかも・・・。
余談
食べログのサイトでデベロッパーツールを開くと・・・
なんかリクルートサイトへの誘導仕込んである!!笑 アスキーアートの遊び心が素晴らしい!
今回はスプレッドシートでの食べログスクレイピングに関して記事を作成させていただきました!みなさまからのコメント/質問など頂けると励みになりますので、宜しくお願いします!
↓Sabinukyについて詳細はこちら↓