スポンサードリンク



こんにちは。sinyです。

本記事では、pythonを用いた不動産データ分析事例として、不動産 SUUMOサイトから中古の不動産情報をスクレイピングで取得する方法を解説します。

とても簡単ですので、スクレイピング初心者の方はぜひチャレンジしてみてください。

スクレイピングした後、データの前処理→データ分析を行いますが、スクレイピング以降はまた別記事で紹介します。

スクレイピング対象

不動産のデータ分析として都内23区を対象としたブログサイト等をよく見ますので、ここでは埼玉県全域の中古不動産情報をターゲットにしたいと思います。

スクレイピング対象のURLは以下の手順で取得します。

  1. 不動産 SUUMOサイトにアクセス→【中古マンション】→【埼玉県】→【市区郡にチェック】のすべてにチェック→【この条件で絞り込む】で検索
  2. ブラウザのURLをコピーしてurl変数にセット。

取得する情報は以下とします。(下図例の赤枠の項目

  • 物件名/住所/最寄駅/築年数/価格/間取り/面積/バルコニーの広さ

ソースコードはJupyternotebook形式でGithubに公開していますので、必要に応じてご利用ください。

ソースコードの解説

まず最初に必要なモジュールをインポートします。
今回はBeautifulSoupを使ってスクレイピングを行います。

 

先ほど取得した検索対象のURLをurl変数にセットして、requests.getメソッドでHTMLを取得した後、BeautifulSoupで内容を解析しsoup変数に格納します。

 

次に、pagination pagination_set-navクラスに定義されている検索結果のページ数を取得します。

 

次に検索ページ数分のURLをurls変数にリストとして生成します。
このURLをループで回して全ページ分の不動産情報を収集していきます。

 

以下がメイン処理です。

dottable dottable--cassetteクラス内に不動産の情報が格納されているため、ループ処理を回して不動産情報をすべて取得します。

 

ターゲットとなる情報「物件名/住所/最寄駅/築年数/価格/間取り/面積/バルコニーの広さ」は以下の部分で取得しています。

 

1物件の情報をすべて取得したらdata変数に追加します。

 

礼儀として、1ページ分の情報を取得したら1秒待機させます。

 

最後に収集した不動産データ(data)をpandasを使ってcsvファイルに出力します。

文字化け対策でエンコードにutf-8-sigを指定しています。

以上で、以下のような埼玉県全域の中古マンション情報が収集できす。

以上で、中古マンション情報のスクレイピングは完了です。
次回は、収集した不動産データを分析するために各種データの前処理を行っていきます。
おすすめの記事