2024.02.08

初心者が3日で賃貸情報サイトのスクレイピングツールを作った話

お知らせ・日記

初心者が3日で賃貸情報サイトのスクレイピングツールを作った話の画像4


こんにちは!アパコレ東京の学生スタッフ(法)です。

みなさんは、賃貸情報サイトを見ていて、「同じ写真の同じ建物の物件が違う名前で掲載されている」
あるいは、
「ヒットした件数よりも表示されている検索結果が明らかに少ない」のを見たことがありませんか?
よくあるのが、「ハイツ△△」という物件と「JR○○線 ××駅 3階建 築5年」という物件が、名前以外はほとんど同じだったり。

他にもたとえば、狭い地域で家賃8~9万、バストイレ別、のように細かい条件を設定した際に、
30件ヒットした!と思ったら、実際に表示されるのは建物3件、部屋10件でガッカリ……なんてこともしばしば。

自分自身も部屋探ししていて、こういう重複物件にガッカリさせられることがよくあったので、これを解決するために、
賃貸情報サイトでの検索結果をスクレイピングしてExcelファイルに起こしてみることにしました。
(robots.txtをチェックして、当該ページがスクレイピングを禁止していないことを確認しました。)
今回、まったくのプログラミング初心者だったのですが、Pythonを使って、コードを自分で書いてみました。

さまざまなブログを参考にして、また社長が課金しているChatGPT4にも教えを乞いながら、完成しました!

初心者が3日で賃貸情報サイトのスクレイピングツールを作った話の画像2
▲ChatGPT様には頭が上がりません

初心者が3日で賃貸情報サイトのスクレイピングツールを作った話の画像1
▲私以外でも触りやすいように、GUIアプリを作ってプログレスバーと完了音を実装してみました

見た目はしょぼいですが、東大生の頭脳()をもってしてもこれに丸3日かかりました。
初心者中の初心者なので、まずコマンドプロンプトを探すところからはじまり、
なぜかNumPyをインストールできなかったり、Requestsをインポートできなかったり、
新しい機能を増やすたびに未知のエラーと遭遇して大変でしたが、なんとか完成できました!
途中、なぜか1ページ目をループされたり、無限ループしてしまってIDLEが暴走?したりとどうなるかと思いました。

ざっくりフローを書くと、
まずスクレイピング開始の定義を書いて、読み込めなかったときにはリトライさせます。
建物情報として建物名、住所、最寄り駅等を物件ごとに処理します。さらに複数の部屋がある場合、階や家賃ごとに部屋情報も収集します。
それからプログレスバーの値を更新する設定をして、その後CSVに結果を保存させます。encoding='utf_8_sig'を入れて文字化けを防ぎました。
そこで完了の表示と経過時間がウィンドウで出るようにしています。その後にいろいろ、base_url += "&page={}"とか、ウィンドウの設定とか、プログレスバーの設定とか、最後に音の設定をして、完成です。
初心者がつぎはぎして書いたコードなので汚くてとても見せられませんが、デバッグにデバッグを重ねて、一応機能します!

一番頑張ったところは、なぜか何度やってもRequestsをインポートできなかったので、
import sys
sys.path.append('場所')
を最初に付け足したところです。pipのインストールも場所も確認したのになぜそうなるのか理屈は不明ですが……

初心者が3日で賃貸情報サイトのスクレイピングツールを作った話の画像3
▲秒数が厳密ですね。量子物理学の実験か何かみたいです。桁数を減らす修正をするほどの気力がありません。

意外にも、まったくのプログラミング初心者であっても、
社長が買ってきた初心者向けのPython入門書と、ネットの先人たちのブログと、ChatGPT様様でなんとかなることがわかりました。

スクレイピングの結果を貼ることはできませんが、分類、物件名、家賃等の物件情報が1行にまとまって出てきます。
見てみると、某賃貸情報サイトで検索して、
ヒットした件数が「約2700件」であったのに対して、実際にスクレイピングして数えてみたら「約600件」でした。
このサイトは自動で、重複した物件情報がひとつしか表示されないようになっているので、これはつまり、
実質的な物件の数は賃貸情報サイトの登録件数に比べて圧倒的に少ないということです。
他にも様々な条件で検索してみましたが、数えてみるとおおむね4分の1ほどになっていました。

そして、ここでは1つ目に書いた、同じ写真だけど違う登録名の物件は考慮していません。
また、掲載されていても既に成約している物件もあります。
実際の物件数は賃貸情報サイトの掲載数に比べてかなり少ないものになるのです。

実際にどの物件がどういう状態かは、問い合わせてみなければわかりません。
そして、仲介手数料も業者によって異なるので、複数の仲介会社を比べて検討してみるのもいいでしょう。
ポータルサイトを見ているだけではなく、実際に不動産屋に問い合わせるということの重要性をお分かりいただけたでしょうか。

ということで、みなさんもぜひ独学でPythonスクレイピング生活を始めてみてはいかがでしょうか?

さようなら!


searchH3
jittai 東大生の住まい探し実態調査
来店予約

東大生本郷住まい探し相談コーナー


①「本郷キャンパス内住まい探し相談コーナー」に15年間常駐し東大生に住み替えサポートしたベテランスタッフが毎日相談をお受けします。


②4,800名以上の東大生に紹介実績をもつベテランスタッフと、本郷キャンパスエリアの物件案内総数7700件(重複物件含む)以上のスタッフが担当しています。


「本郷キャンパス内住まい探し相談コーナー」開設準備中から15年間常駐したスタッフが東大生から直接入居体験をお聞きし、さらに東大生に特化した各種媒体を通して収集した入居体験レビューの蓄積が強みです。





apacoMapBanner

”希望を追いかければ、情報は君に味方する”
の見出しは、1978年(昭和53年)発行の『東京アパート新聞』で使用したキャッチコピーです。「満足、納得できる部屋を一緒に探しましょう」の思いを込め、作った標語です。今、当時の思いを込めて、35年前のフレーズを、あえて見出しで復活しました。
アパコレ東京は東大生協年間成約実績№1(2020年3月迄の実績分)です。
東京大学徒歩圏内、自転車圏内、東大生に人気の学生マンション等住まい探しに関することは、東大生に最も身近な場所で東大生の部屋探しを15年間サポートしました弊社担当者にご相談ください。
アパコレ東京の営業時間は
10:00〜18:0)です。
東京大学本郷キャンパスへ通学、通勤に便利なマンション、アパートはアパコレ東京にお任せください。




↓画像をクリックすると全ページご覧頂けます!
東大生のお部屋100選
お部屋探しパンフレット
「東大生のお部屋100選」
アパコレ東京で配布中!
例年東大生に人気の賃貸Collection特集号、本郷周辺のお部屋探しに役立つ情報も満載。冊子掲載の賃料等は募集時の賃貸条件を記載しています。時期により変更になる場合があります。その節はご了承お願い致します。
文京区ガイドマップ
文京区ガイドマップ
「住まい相談コーナー」で
無料プレゼント!

文京区区分地図、路線図をお役立てください。只今窓口のみでの無料進呈です。

東京大学
東京大学ホームページ

小石川植物園