いてづきブログ

情シスでやってみたことの備忘録

GASでSUUMOの検索結果を一覧で表示できるスクリプトを作った

7月に引っ越すにあたって引越し先の選定をしないといけないが、SUUMOで表示される内容を見やすく一覧で見るためにスクリプトを書いた。

ただしSUUMOにはAPIがないため、検索結果のURLを叩いて返ってきたレスポンスを解析するという手法を採っている。

そのため具体的なソースを載せることは控える。

 

 

スクリプトはGoogleAppsScriptを用いた。

標準でスケジュール実行の機能があることとスプレッドシートとの親和性が高いため向いている。*1

 

まずURLはSUUMOで最寄り駅や各種条件で検索を押した後に出てくる画面のURLをそのまま用いた。

パラメータが大量に設定されているが内容を逐一照合するのは面倒なことと一つでもパラメータが欠けていると結果が返ってこないためそのままコピペすることにした。

これをUrlFetchApp.fetchで叩く。

 

返ってきたレスポンスから詳細ページへのリンク部分を正規表現で抜き取る。

具体的には「chintai/jnc_xxxxxxxxxxxx?bc=xxxxxxxxxxxx」となっているものを抜き取る。

 

 

そうして得られた詳細ページを一つずつUrlFetchApp.fetchで叩き、返ってきたレスポンスから家賃や間取り等の情報を取得する。

しかし詳細ページのページ構成は同じclassのdivが多数使われているため、正面から正規表現で抜くのはかなり困難なためパーサーを使う。

今回は下記のものを使用した。

 

fromを少し多めに取ることで該当する部分の要素を抜き出すことが出来る。

 

こうして出来たのが下記のシートである。

 

家賃や間取り、面積等を一覧で見られるため比較がかなりやりやすくなった。

 

スクレイピングといえばPythonみたいなところがあるが、GoogleAppsScriptはこうして他のGoogleのプロダクトとの連携がしやすいところが最大の長所である。

 

 

 

 

*1:掲載情報は日々変わるため毎日最新を取得することにした