家探しのための Suumo スクレイピング用スプレッドシート
丁度探しているんですが、家探しって情報戦です。
いろいろ情報がインターネットに落ちてはいるものの、なかなか人手で一つにまとめて比較検討するのは大変です。そんなときこそウェブスクレイピングの出番です。(いろしろ写真みて表作って、というのも充分楽しい作業ではあるんですけどね。)
物件の URL を入れると基本情報+2年住んだ場合のトータルコスト概算を出してくれるスプレッドシートを作成しました。(サンプルあり)
スクレイピングについては以前にも書いたので参考までに以下もどうぞ
- Google 先生に聞いても意外とわからなかったウェブスクレイピング基礎編
- Google 先生に聞いても意外とわからなかったウェブスクレイピング実践編1
- Google 先生に聞いても意外とわからなかったウェブスクレイピング実践編2
###参考
- ほとんど前者を参考にさせていただきました。後者はクローラとセットで検索するところから指定されており、すごいなぁと。
- Google Spreadsheetで効率的に物件を探す
- 【技術】エンジニアの家探しについて
- IMPORTXML - Docs editors Help
- REGEXREPLACE - ドキュメント エディタ ヘルプ
###前提
A3にURLを入れるとします。単位は 万円
とします。
更新料を1ヶ月分と仮定しています。
トータルコスト等の計算式はご自由に変更ください。
以下の Xpath は上記のウェブスクレイピング記事と同様に Chrome で表示した際の Developer Tools から右クリックコピーにて採取しています。ただし Google スプレッドシート側の仕様で、Xpath 自体を二重引用符で囲む必要がありますのでここだけ書き直しが必要です。
下のリストは、使用できるすべての関数をカテゴリ別に示しています。関数を使用する際は、セル参照や列参照でないアルファベット文字で構成される関数要素はすべて、二重引用符で囲むようにしてください。
###デメリット
物件の掲載期間が終わったら、スクレイピングしてきた情報ごと消えます。あとで見返したりしたい場合は、値のみコピー/バックアップする運用をおすすめします。
###家賃=REGEXREPLACE(IMPORTXML(A3,"//*[@id='contents']/div[1]/div[2]/div[1]/table/tbody/tr/td[1]/div/div[1]/span"), "万円", "")
###管理費=REGEXREPLACE(REGEXREPLACE(IMPORTXML(A3, "//*[@id='contents']/div[1]/div[2]/div[1]/table/tbody/tr/td[1]/div/div[2]/span"), "管理費・共益費 ", ""), "円", "")/10000
###敷金=REGEXREPLACE(IMPORTXML(A3,"//*[@id='contents']/div[1]/div[2]/div[1]/table/tbody/tr/td[2]/div/div[1]/span[2]"), "万円", "")
###礼金=REGEXREPLACE(IMPORTXML(A3,"//*[@id='contents']/div[1]/div[2]/div[1]/table/tbody/tr/td[2]/div/div[2]/span[2]"), "万円", "")
###築年数=IMPORTXML(A3, "//*[@id='contents']/div[1]/div[2]/div[1]/table/tbody/tr/td[4]/div/div[2]")
###面積=REGEXREPLACE(IMPORTXML(A3, "//*[@id='contents']/div[1]/div[2]/div[1]/table/tbody/tr/td[3]/div/div[2]/text()"), "m", "")
###仲介手数料=家賃/2+1.5
どこかのサイトで読んだざっくり式
###更新料
1ヶ月分の家賃想定
###鍵交換等
すみませんスクレイピングできなかったので、目 grep してください。
保険, クリーニング代 etc…
###トータルコスト(2年)=(家賃+管理費)*24+敷金+礼金+仲介手数料(+鍵交換等)
###初期費用
=(家賃+管理費)*2+敷金+礼金+仲介手数料(+鍵交換等)
トータルコストも気になりますが、初期費用がどれくらいなのかも知りたいですよね。
だいたい家賃の 4.5 ヶ月分程度になると言われています。(ソース不明)
###サンプル
注意)4行目だけ編集可能になっています。ご自分のスプレッドシートでいろいろ試してみてください。
こんなのなくても元のDBにアクセスできたら、早いんだらうなぁ。