先日、用事があり午前中に外出の必要がありました。ヤマト運輸に集荷をお願いしてみたものの、混雑していてこれなさそうだったので隣の駅、鴨居にある配送センターに持っていくことに。いざ着いてみると、ヤマト運輸がないというか配送センターが営業していない。「緑中山センターは平成30年1月20日をもって閉店しました」の張り紙が。ビジネスメンバーズなのに、何の連絡も来てないんですが。GoogleMapでは営業中の表示のままで、移転の情報がなかったので、投稿しておきました。ドライバーに連絡するもすぐには迎えないし、近くにもセンターはない。近くを通るヤマトの車もないしで、結局は家に戻ることに。なんとかドライバーを捕まえて出荷は完了。この時点ですでに用事には遅刻確定。ドライバーに話を聞いたところ、近くにできた集合型?物流センターに移動したとのこと。ドライバーも移転直前まで知らなかったとのこと。いえ、何度か集荷に来ているのに全く連絡がないとはどういうでしょうか。物流センターは物流の関係者のみ出入りが可能で、一般人の入場はできない、つまり、持ち込みとセンター留め置きが不可能になりました。これはかなりの痛手で、物販の業務ではヤマト運輸の配送サービスで当日発送は約束できなくなりました。これからは日本郵便がメインになりそうです。受注システムでヤマト運輸の営業所を指定できる機能を実装しようと、住所の一覧を探しました。データファイルが用意されているかと探しましたが見つからず、ヤマトに直接問い合わせると用意がないとのこと。仕方がないので、自力で用意するしかありません。ヤマト運輸の営業所検索はJavaScriptでごにょごにょしているのと、毎回住所の座標から検索しているようなので静的ページがないようです。地図から絞り込んでいくと、最終的には営業所ページ詳細へのリンクが表示されるページにたどり着きます。この一覧から営業所詳細ページに飛ぶと、はじめて営業所コードをURLに含むページにリダイレクトされます。このURLからさらにiframeで詳細を表示していました。そのURLが「http://sneko2.kuronekoyamato.co.jp/sneko2/servlet/jp.co.kuronekoyamato.sneko2.servlet.CodeSearchServlet?ACTID=LINK_MAP&CODE=028245」となるので、末尾の数値を変更することで営業所の詳細な情報を取り出すことができるのです。ちなみに、「028245」は私の近所の営業所緑中山町の営業所コードです。次に、営業所コードの一覧ですが、こればデータファイルを入手できます。ビジネスメンバーズへの登録が必要なので、未収契約などを済ませていることが条件です。このビジネスメンバーズサービスの中に、B2の更新データファイルをダウンロードできるサービスがあり、そのファイルの中に営業所コードの一覧ファイルがあります。そのファイルは、「B2OFFMST.zip」ファイル内の「TENMST.LZH」内の「TENMST.txt」になります。このファイルは営業所コードと営業所名のみで、住所等は含まれていません。そこで、このファイルのデータをもとに、先程のURLへアクセスして詳細データを取得することで、営業所の住所一覧のデータを用意する事が出来そうです。久しぶりにクローラを作成しましょうか。