【下4桁は0101】マルイのロゴとキャンペーンの関係。1つ前のロゴは昭和を感じる。
スポンサーリンク
ご存知でしたか?
「OIOI」こと、マルイ(丸井)。
そのロゴのこと。
※イメージ
マルイというお店の存在を知らないときは、「オイオイ」とか読んじゃうこのロゴ。
存在を知っても、「なるほど」とは思うが、100%納得はできない。
なぜなら2回繰り返しているから。
"O"が「まる」ってことなら、「OI」でいい。
2つ並べると「マルイマルイ」になるじゃんって。
ってことで気になったので調べてみたら、どうやら1974年に行ったキャンペーンが関係しているらしい。
そのキャンペーンとは、「0101(まるいまるい)キャンペーン」で、マルイの全店舗の電話番号を変更すること。
全店舗の電話番号の下4桁を、0101にすること!
そのイメージ戦略の一環としてそれをそのままロゴにした。らしい。
まじか!
あのロゴにそんな秘密があったのか!
よし、確認してみよう。
今の時代、Webで見れば一発だろう。
こちらにアクセスして確認する。
マルイ店舗一覧|マルイ
引用:マルイ・モディ店舗一覧 (HP)
あれ?
これ、各店舗1つ1つクリックしてアクセスしないと確認できない?
電話番号ズバッと一覧ってないの?
さすがに1つ1つ確認するのはめんどい。
一応エンジニアなんだから、ここで面倒くさいと思うことは正常な感覚のハズ。
ということで(自称)エンジニアなんだから、Pythonのプログラムにやらせた。
素晴らしい!
CSVにも出力できた!
一部の「なんとかモディ」っていう店舗の番号は違かったけど、ほんとに全国の店舗の電話番号下4桁が「0101」だった。
スポンサーリンク
ではエンジニアブログなので、今回学んだコードの一部を備忘録として記述しよう。
すべてのコードを記述しないけど(※)、Pythonでの正規表現とか学んだので、そこらへんを少し。
Webスクレイピングについては他の記事に譲るとする。
※法律的にとか、先方に迷惑かかっちゃいけないとかの理由とかとか
Pythonはライブラリをインポートしないと使えないメソッドがあったりするので、必要なインポートも併せて記述していく。
ざっとこんな感じ
- 1. 途中でプログラムを終了する
- 2. スリープ
- 3. 改行を空白に置換
- 4. リストの重複削除
- 5. リストのリストで2つ目の要素でソートする
- 6. 取得した文字列の中から電話番号だけ抽出する(正規表現)
- 7. 各辞書をSeries経由して、DataFrameに入れてCSVに出力
- おまけ:昔のロゴ(昭和を感じる)
スポンサーリンク
1. 途中でプログラムを終了する
import sys
sys.exit()
途中で強制終了させて、一部のコードを確認することあるよね。
2. スリープ
import time time.sleep(10) # 10秒待つ
間隔を空けたいときなど
3. 改行を空白に置換
import os address = address.replace(os.linesep, " ")
※改行はOSによって変わるので、OS依存に対応する(os.linesep)
4. リストの重複削除
stores = list(set(stores))
※set()で集合にして、リストにする(集合は重複なしなので削除される)
5. リストのリストで2つ目の要素でソートする
stores.sort(key=lambda x: x[1])
[[name, url], [name, url], ・・・]であれば、"url"の方でソート
無名関数(ラムダ関数)というのを使っている
6. 取得した文字列の中から電話番号だけ抽出する(正規表現)
mo = re.compile(r"([\d()\-()ー]{10,12})").search(text) if mo is not None: tel = mo.group(0) tel = re.compile(r"\D").sub("", tel) # 数値以外削除
変数textの文字列から、数値と半角か全角のハイフンとカッコの集まりで10〜12文字分抽出。
※ハイフンやカッコがあったりなかったり、全角だったりする可能性もあるので。
最後に数値以外を削除で、すべて数値のみで統一させる。
例:
お問い合わせはこちら 03(1234)0101 営業時間は・・・・
↓
0312340101
最初に文字列あろうが、電話番号から来ようが、途中改行あろうが大丈夫
7. 各辞書をSeries経由して、DataFrameに入れてCSVに出力
(意味不明かもしれないが、CSVに出力するにはこれが一番ラクそうだったので)
# tel_dict : {store_a: 1234567890, store_b: 1234567890, ・・・} # address_dict : {store_a: '東京都...', store_b: '神奈川県...', ・・・} # url_dict : {store_a: 'https://...', store_b: 'https://...', ・・・} store_df = pd.DataFrame({"TEL": pd.Series(tel_dict), "ADDRESS": pd.Series(address_dict), "URL": pd.Series(url_dict)}) store_df.to_csv("store.csv", encoding="shift-jis")
※MacのExcelで開く場合、デフォルトのUTF-8保存すると文字化けするのでshift-jisにエンコード
スポンサーリンク
おまけ:昔のロゴ(昭和を感じる)
以前のマルイさんのロゴはこんな感じだったらしい。
※イメージ
マルの中に「イ」があるね。
そして、1974年のキャンペーン時に変えたロゴ
※イメージ
ゼロの右下が途切れているも理由がある。
当時の電話はダイヤル式。
いわゆる「黒電話」(ぼくの子供のころは緑電話だったな)
※イメージ
これで「0」を発信する際は、右下から時計まわりにぐるっと回す。
一回転はせず、このロゴのようにぎりぎりで止まる。
これがすぐイメージできた方は、30後半より上の昭和世代かも。
一方「1」は右上からほぼ真下に降りる。
だからこちらもロゴとあっているのかな。
もうすぐ平成が終わり、令和の時代になる中、
なかなか感慨深いこと知れたな。
今回参考にさせていただいた書籍
- 作者: 高橋書店編集部
- 出版社/メーカー: 高橋書店
- 発売日: 2013/04/18
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
純粋に面白い。
退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング
- 作者: Al Sweigart,相川愛三
- 出版社/メーカー: オライリージャパン
- 発売日: 2017/06/03
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (6件) を見る
Pythonの基礎→応用のステップアップによいと思う。
「ノンプログラマーにもできる」は、正直「?」である。
- 作者: Bill Lubanovic,斎藤康毅,長尾高弘
- 出版社/メーカー: オライリージャパン
- 発売日: 2015/12/01
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (3件) を見る
持ち運びには重いが。
では。