はじめに
不動産投資を始めて、ちょっとめんどくさいなと思うのが、マーケットリサーチです。つまり、今買おうとしている物件は、市場価格と比較して高いのか?安いのか?の判断です。この手間を省くために、Pythonでツールを作ったので、その記録です。
SUUMOをスクレーピングしてデータをCSVで出力するプログラム
たまに思い出すのですが、私はSEであったり、以前はプログラムを書けたりもしました。この、昔取った杵柄の一番の効用は、例え今プログラムを書けなかったとしても、読んで中身を理解することに関しては、あまり苦にならないことでしょうか
また、最近はAIの発達により、プログラム自体を書くというよりは、AIにどんなプログラムを書かせるか?ということに、中心が動いてきているようで、例え知らない言語だったとしても、コードを書いてプログラムを実行できるようになってきました。
そこで、色々と調べながら、SUUMOをスクレイピングしてデータを集めてくるプログラムを作成しました。
参考にしたのは、こちらのサイトとGeminiです
SUUMOのスクレイピング用プログラム
https://qiita.com/tomyu/items/a08d3180b7cbe63667c9
二次元配列の出力
https://qiita.com/qiitataro/items/d70414248d45041d8134
詳細は、各サイトを参照していただければ、その処理内容も含めて詳細に記載されているので、ここでは説明しませんが、利用にあたってのポイントをいくつか。
- 自分が検索したい条件のURLを作る
一番重要なのはこれなのですが、一つ目のプログラムをそのままコピーして実行すると、著者の方の調べたい条件で検索結果を取得するようになっているため、ここを自分の好みの検索条件をセットしたURLに変更する必要があります。
具体的には、SUUMOのページで自分の好みの条件を設定して、検索したページを表示させ、そのURLをコピーし、url変数にセットします。この時、元々書いてあるURLの一番最後の &page={} はそのままとします。 - 二次元配列を表形式でCSVに出力する
Python初心者の私は、そもそもPythonのprint関数の使い方もわからない状態なのですが、こちらは二つ目の参考URLを確認し、教えてもらいました。上記サイトに記載されているsample_02.pyというのがそのものズバリなのですが、以下の通りちょっと手直しします。
まずは、このコードを一つ目で参考にさせていただいたコードの末尾に全部貼り付けます。その上で、 import csv は他と合わせてコードの最初に持ってきます。次に、以下の部分は丸ごと削除します。
str_li = [
[“犬”, “ネコ”, “豚”],
[“サル”,”牛”,”鳥”]
]
print(str_li)
# [[‘犬’, ‘ネコ’, ‘豚’], [‘サル’, ‘牛’, ‘鳥’]]
そして、その後に続く、test.csv は出力ファイル名なので、自分の好きなファイル名に適当に変更し、in の後ろのstr_liを最初のスクレイパーで設定したリスト名(data_samples)に変更すれば準備完了 - LibraOffice Calcでフォーマットを変更する
LIbraOffice Calcでフォーマットを変更するには、まずは家賃、管理費、占有面積の表示を適切に調整する必要ありです。家賃は万円、管理費は円、占有面積はm^2で表示されているので、家賃と管理費はカンマ区切りの円、占有面積は小数点二桁表示で単位なしにする必要があります
これは、Geminiに聞くと以下の関数で実現可能なことがわかりました。
=VALUE(IFERROR(LEFT(J2,FIND(“万円”,J2)-1),J2))*10000
VLAUEは文字列を数値形式にする関数で、これを使って、セルの文字列のうち左側から「万円」の右側までの文字列を取得し、VLAUEへ渡します。最後の *10000は単位の換算で万円表示を円表示にするものです
これを応用すると、管理費の表示から円を抜いたり、占有面積の表示からm^2を抜くことができます
これで、私としては必要なデータを取得して、欲しい状態に加工することができたので、一見落着となりました。
なお、SUUMOのスクレイパーですが、サンプルの状態だと都内の全物件を対象に情報収集にあたるため、2000ページ以上の検索結果となり、ものすごい時間を要するため、まずは、SUUMOで自分の好みの検索結果を表示させ、何ページ分になるのか?を確認してから実行することをお勧めします。
まとめ
- 実際に自分の利益につながるとなると、こういった活動はとても捗ります
- 今回は、私が購入を検討している物件の近くの情報を収集するためにスクレイパーを作りましたが、これはSUUMOがページを改造しない限り、使い続けられるためこの先の情報収集にも大いに役立てられそうな気がします