「 別の畑に首を突っ込むときはまず その業界の著名な150人を調べるハック をやろうぜ☆? まずは アニメ監督 から☆」
「 社会学の方から来た経験的数、プログラマーに分かるように言えば マジック・ナンバー の 150 で、
飯食って顔を思い浮かべたり、どう動いているか想像しながら一緒に仕事できる人の上限数 ぐらいに思っていい☆」
「 直接目の見えるところに指示を出して動かせる人の上限数 は マジック・ナンバー 30 なんで、
全体で 40人 いれば 1班を20人にして 2班体制にする、とか 社会学の経験からくる数は 指針として利用される☆」
「 ラクビーの15人☆ 2チーム対戦するわけだから、競技場に 30人 同時に動いているわけだな☆
ちょうど マジックナンバー 30 だぜ☆」
「 営業マンで ラクビーやってて体力がある、というだけでなく、この 30人を見る目 は 仕事の役に立つわけだぜ☆」
「 で、説明は はしょって メタファーを使って言うと、 その業界の1流と やり合う には
自宅にある1500枚のカードの中から 150枚のカードを選んでポケットに入れて出かけて、
戦いが始まる直前に その場で 30枚のカードを選び出して それだけで戦う、みたいなことが 必要になるぜ☆」
「 数の理論の根拠や その効果の有用性の説明は ほどほどに はしょって さっさと進もう☆
グーグルに アニメ監督一覧
と入れるだけで ずらーっと顔が並ぶぜ☆
肖像権どうなってんだ……☆」
「 なぜか グーグルに アニメの作画監督
に翻訳し直されて 51人 出てきた☆」
「 わたしは 水増し と やっつけ仕事 を得意とするプログラマーなんで☆」
「 キーワードを アニメーション監督一覧
にするだけで メンバーがちょっと変わる☆」
「 べつに 画像にこだわらなければ 名前の一覧ぐらいあるのに……☆」
「 Wikipediaの記事は人間が編集しているが、グーグル検索は SEO対策の結果が出ている☆
たくさん載っていると 逆に その中から選ぶことが むずかしい☆ これは初歩的な悪手だぜ☆
うまいやつは、うまくバラついてピックアップしてくれる道具を選べだぜ☆」
「 キーワードを アニメ作家一覧
に伸ばして 水増し しよう☆」
「 じゃあ ソートするが……、なんだ この検索画面 名前を引っこ抜けないな……☆ 右クリックしてHTMLソースを表示☆」
「 フル・オートマで人名だけ取り出すプログラムを書くのは大変なので……☆」
「 人名が書いてある範囲を 適当に選択して web-site.txt
とでもいうファイル名で保存☆
Ajax
でも使っているのだろう☆ 画面に表示されている部分よりちょっと大きめの範囲分 ぐらいのデータしかないようだぜ☆」
tag-off.py
import re
# ファイルをオープンする
test_data = open("web-site.txt", "r", encoding="utf-8")
# すべての内容を読み込む
contents = test_data.read()
# HTMLタグを消す。
contents = re.sub(r"<[^>]*?>", "", contents)
# 内容を表示する
print(contents)
# ファイルをクローズする
test_data.close()
# HTMLタグを半角スペースに変換。
contents = re.sub(r"<[^>]*?>", " ", contents)
# 2つ以上連続する半角スペースを、改行に変換。
contents = re.sub(r" {2,}", "\n", contents)
「 さすが やっつけ仕事の達人だぜ☆
裏で ちょこちょこ 手作業 で直していても プログラムの達人の ふり をしているよな☆」
「 プログラミングに詳しい人なんか 開発チームの外には いないですからね。
運用で ごまかせるのよ」
「 データの修正とかは最後でいいぜ☆ Excel
にコピペしろだぜ☆」
「 Excel を使っているだけで 仕事をしている感 があるよな☆
Excel で コンピューター将棋を作って 遊んでた証券屋もいるらしいぜ☆」
「 あとは 手作業で繰り返すだけ☆ ここを自動化できないのは まあ 自分の技術レベルと相談した結果だな☆」
「 あれっ、HTMLソースに 名前が載ってないやつがいるぜ☆?」
「 Ajax だからな☆ 動的読込(あとから更新)なのだろう☆」
「 じゃあ [F12]
キーの開発者モードへのショートカットを使って 動的に変更されたHTMLを 引っこ抜くだけだぜ☆」
「 日本政府から禁止されそうよね。やることがないときは とりあえず何かを 禁止にしておけば 実績になるのよ」
「 モザイクから元の顔を復元する技術が発達したら お父んは肖像権侵害な☆」
「 SCzBxCNarKLWU
……とかいう分けわからない文字、ひょっとして画像データなの?」
「 おそらく そうじゃないか☆? そうでなければ難読化コード☆ わたしには どうでもいいぜ☆」
「 1ページずつ変換するのではなく、 1つのファイルに HTMLソースを3回貼り付けて 一括変換しろだぜ☆
そして Excel に張り付けると、重複のことを考慮すると 100人ぐらいは 名前が取れたんじゃないか☆?」
「 フィルターかけて 重複を除去してから 名前の崩れの修正や、ノイズの除去をする☆
ソートすれば 漢字が何順か分からないが、とにかく 並ぶぜ☆」
「 人類は データのソート が苦手なので、こういうところは コンピューター に任せるのが うまくやる方法だぜ☆」
「 こんな感じで Excel と照らし合わせながら カードを確認しているので 1時間ぐらい 待て だぜ☆」
「 被りを削って、HTMLソースから多めに拾ったのを追加すると 116名 あるな☆」
「 150と、115じゃ、 76% しか満たしてないわよ?」
「 じゃあ 76% で進めようぜ☆
ところで Wikipedia の記事は 全然 正しくないことで有名だが、だったら アンサイクロペディア の公開情報を調べていこうぜ☆?」
animator.csv
ansaikuropedia.py
import pandas as pd
animator_df = pd.read_csv("./animator.csv")
names = animator_df["NAME"].values.tolist()
print("""
|Name|
|----|""")
for name in names:
# Deletes space.
keyword = name.replace(" ", "")
print(
"|[{0}](https://ansaikuropedia.org/index.php?search={1})|".format(name, keyword))
「 pandas で CSVのデータを抽出するぜ☆
markdown形式のテーブルの形に出力してしまおう☆ あとは リンクを踏んで確認だぜ☆」
ansaikuropedia.py
import urllib
import pandas as pd
animator_df = pd.read_csv("./animator.csv")
names = animator_df["NAME"].values.tolist()
print("""
|Name|Ansa|Nico|
|----|----|----|""")
for name in names:
# Deletes space.
keyword = name.replace(" ", "")
# Escape.
keyword = urllib.parse.quote(keyword)
print(
"|{0}|[Ansa](https://ansaikuropedia.org/index.php?search={1})|[Nico](https://dic.nicovideo.jp/s/al/t/{1})|".format(name, keyword))
「 アンサイクロペディアだけでは記事があんまりないので ニコニコ大百科も追加しよう……☆」
「 どんぶりを犬に舐めさせて食中毒になってしまう押井監督と もっと間近で見たいと国鉄小海線の列車の前に飛び出して警笛を鳴らされてしまう新海監督 面白いな……☆」
「 しかし ほとんど記事立ってないな☆ 作品の記事は ちらほらあるが、監督が記事になってると思う方が変なのかだぜ☆?」
「 Wikipedia は情報はいっぱいでも 信憑性がないから 読んだら 悪い癖が付きますからね」
「 くそっ 手塚治虫の記事だけで 全体の半分ぐらいありそう☆(^~^) スクロールバーのスライダーが全然下に行かない☆(^~^)」
<書きかけ>
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント