ろきメモ【ROKI MEMO】- ろきsanの備忘録 -

ろきさんの備忘録。プログラミング学習記録や開発記録、および学んだ知識等のアウトプットとシェアを目的に書いています。たまに普通のことも書きます。

【下4桁は0101】マルイのロゴとキャンペーンの関係。1つ前のロゴは昭和を感じる。

スポンサーリンク

ご存知でしたか?

「OIOI」こと、マルイ(丸井)。
そのロゴのこと。

f:id:ahrk-izo:20190405191427p:plain:w300
※イメージ

マルイというお店の存在を知らないときは、「オイオイ」とか読んじゃうこのロゴ。

存在を知っても、「なるほど」とは思うが、100%納得はできない。

なぜなら2回繰り返しているから。

"O"が「まる」ってことなら、「OI」でいい。
2つ並べると「マルイマルイ」になるじゃんって。



ってことで気になったので調べてみたら、どうやら1974年に行ったキャンペーンが関係しているらしい。

そのキャンペーンとは、「0101(まるいまるい)キャンペーン」で、マルイの全店舗の電話番号を変更すること。

全店舗の電話番号の下4桁を、0101にすること!
そのイメージ戦略の一環としてそれをそのままロゴにした。らしい。


まじか!
あのロゴにそんな秘密があったのか!


よし、確認してみよう。
今の時代、Webで見れば一発だろう。



こちらにアクセスして確認する。
マルイ店舗一覧|マルイ

f:id:ahrk-izo:20190405192842p:plain:w500
引用:マルイ・モディ店舗一覧 (HP)

あれ?

これ、各店舗1つ1つクリックしてアクセスしないと確認できない?

電話番号ズバッと一覧ってないの?



さすがに1つ1つ確認するのはめんどい

一応エンジニアなんだから、ここで面倒くさいと思うことは正常な感覚のハズ。



ということで(自称)エンジニアなんだから、Pythonのプログラムにやらせた。


f:id:ahrk-izo:20190412163120p:plain:w600
f:id:ahrk-izo:20190412163154p:plain:w600
素晴らしい!

CSVにも出力できた!
f:id:ahrk-izo:20190412163256p:plain:w500


一部の「なんとかモディ」っていう店舗の番号は違かったけど、ほんとに全国の店舗の電話番号下4桁が「0101」だった。

スポンサーリンク




ではエンジニアブログなので、今回学んだコードの一部を備忘録として記述しよう。
すべてのコードを記述しないけど(※)、Pythonでの正規表現とか学んだので、そこらへんを少し。
Webスクレイピングについては他の記事に譲るとする。
※法律的にとか、先方に迷惑かかっちゃいけないとかの理由とかとか



Pythonはライブラリをインポートしないと使えないメソッドがあったりするので、必要なインポートも併せて記述していく。


ざっとこんな感じ

スポンサーリンク



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にエンコード

スポンサーリンク



おまけ:昔のロゴ(昭和を感じる)

以前のマルイさんのロゴはこんな感じだったらしい。
f:id:ahrk-izo:20190412145712p:plain:w150
※イメージ

マルの中に「イ」があるね。


そして、1974年のキャンペーン時に変えたロゴ
f:id:ahrk-izo:20190412150026p:plain:w200
※イメージ

ゼロの右下が途切れているも理由がある。

当時の電話はダイヤル式。
いわゆる「黒電話」(ぼくの子供のころは緑電話だったな)
f:id:ahrk-izo:20190412150457p:plain:w150
※イメージ


これで「0」を発信する際は、右下から時計まわりにぐるっと回す。
一回転はせず、このロゴのようにぎりぎりで止まる。


これがすぐイメージできた方は、30後半より上の昭和世代かも。


一方「1」は右上からほぼ真下に降りる。
だからこちらもロゴとあっているのかな。



もうすぐ平成が終わり、令和の時代になる中、
なかなか感慨深いこと知れたな。


今回参考にさせていただいた書籍

思わず話したくなる ロゴの秘密

思わず話したくなる ロゴの秘密

いろんな企業のロゴの意味や、込められた想いなど書かれている。
純粋に面白い。


退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング

退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング

Pythonを使って様々なことを自動化させる内容が書かれている。
Pythonの基礎→応用のステップアップによいと思う。
「ノンプログラマーにもできる」は、正直「?」である。


入門 Python 3

入門 Python 3

基礎が豊富に載っていて、辞書としてよい。
持ち運びには重いが。



では。