団地を選ぶと物件詳細がExcelに整理される収集プログラム
物件を1件ずつ開いて書き写していた作業を、関心のある団地を選んで実行すると物件詳細が自動で集まり、Excelの2種類に出力されるようにしました。Pythonをインストールしなくても、実行ファイル1つで動きます。
団地の物件詳細の確認
以前
物件ごとに画面を開いて確認
以後
団地選択後、実行1回・Excel整理
背景
関心のある団地があらかじめ決まっている仕事があります。6か所を決めておき、その団地に現在物件が何件出ているか、条件はどうか、昨日から何が変わったかを継続して確認しなければなりません。
現場で見たこと
物件1件を確認するにはリストからクリックして詳細を開き、必要な項目を目で読んで書き写します。団地が6つなら6回ではなく、物件の数だけです。そしてその作業は翌日また最初からやり直しになります。
定義した問題
集めることより、最後まで集めることが問題でした。物件を速く連続してリクエストすると、途中で応答が途切れます。一度途切れた箇所をつなぎ直せなければ、その日の収集は半分だけになってしまいます。
作ったもの
- 団地の選択と収集量の指定 — 登録済みの団地の中から希望する場所だけを選び、取得する物件数を1~1,000件の範囲で決めます
- リクエスト間隔の調整 — 物件と物件の間に置く待機時間を最小・最大(各1~30秒)に設定すると、その間でランダムに休みます。既定は2~5秒です。集中して送らないことが、結局は最後まで集める道です
- 進捗状況を画面に — 全体の進捗率、今どの段階か、何件目の物件か、そして1件終わるごとにログ1行。時間のかかる作業は、進捗が見えなければ止まったものと区別がつきません
- 失敗が続けば止まります — 連続失敗が決められた回数を超えると収集を中止します。空のデータを積み続けるよりはましです
- Excelは2種類 — すぐ読める整理表と、取得した元データをすべて展開した表を一緒に出力します。整理表は34項目に固定し、空の列と重複行を除きます。展開した表の項目数は、収集された物件の構成によって変わります(納品フォルダに残った2つのファイルがそれぞれ428項目と696項目)
- インストール不要で実行 — Pythonのインストールやコマンドラインなしで、実行ファイル1つで起動します。実行すると空いているポートを見つけてブラウザが自動的に開きます
結果
団地を選んでボタンを押すと物件が1件ずつ収集され、終わるとExcelがフォルダに積み上がります。画面の「Excelフォルダを開く」がそのフォルダをすぐに開きます。
同じ方式で作った他の事例はウェブデータ収集にまとめています。
出典
納品プログラムの実行画面