情報科学屋さんを目指す人のメモ

方法・手順・解説を書き残すブログ。私と同じことを繰り返さずに済むように。

Netflixで視聴可能なアニメ一覧を抽出して作品名リストにしてみた(Sublime Textの使い方)

Netflix (30) Sublime Text (5) 正規表現 (4)

Netflixの「アニメ」ジャンル一覧を表示して、そのDOMから作品名の一覧をコーディング無しで抽出してみたので、結果と方法を紹介します。Chrome と Sublime Tex 3 を使用しています。

具体的な抽出手順ですが、汎用性の高いテクニックを連鎖させているので、良い作業見本だと思って紹介してみます。

アニメ一覧

Netflixで、2015年10月4日現在、アニメ一覧に表示される作品がこちらです。

以下の全102作品が、Netflixで視聴できます。

  • まんが日本昔ばなし
  • 鋼の錬金術師 Fullmetal Alchemist
  • あの日見た花の名前を僕達はまだ知らない。
  • 弱虫ペダル
  • ソードアート・オンライン
  • ふうせんいぬティニー
  • Psycho-Pass サイコパス
  • 劇場版STEINS;GATE負荷領域のデジャヴ
  • 化物語
  • 七つの大罪
  • キルラキル
  • 言の葉の庭
  • 銀の匙 Silver Spoon
  • 古代王者 恐竜キング Dキッズ・アドベンチャー
  • 弱虫ペダル Re:Ride
  • デュラララ!!
  • がんばれ!ルルロロ
  • 魔法少女まどかマギカ
  • 美少女戦士セーラームーンR
  • しまじろうと くじらのうた
  • しまじろうとフフのだいぼうけん〜すくえ!七色の花〜
  • わしも
  • 黒執事
  • シドニアの騎士
  • 映画はなかっぱ 花咲け!パッカ〜ん 蝶の国の大冒険
  • 弱虫ペダル Grande Road
  • ログ・ホライズン
  • Peeping Life -手塚プロ・タツノコプロ ワンダーランド-
  • Blassreiter
  • おジャ魔女どれみ#
  • Aria
  • Peeping Life -The Perfect Extension-
  • カレイドスター
  • Fate/Zero
  • 未確認で進行形
  • 劇場版アニメ 忍たま乱太郎 忍術学園 全員出動!の段
  • イノセンス
  • 一週間フレンズ。
  • Peeping Life -The Perfect Emotion-
  • 咲-Saki-
  • Peeping Life -The Perfect Edition
  • サムライ7
  • 秒速5センチメートル
  • Peeping Life -The Perfect Evolution-
  • 瀬戸の花嫁
  • Peeping Life -The Perfect Explosion
  • 咲-Saki-全国編
  • 龍ヶ嬢七々々の埋蔵金
  • Psycho-Pass 2 サイコパス
  • 茄子 アンダルシアの夏
  • 桃屋xPeeping Life ご縁ですよ!
  • ブレイブ ストーリー
  • 東京レイヴンズ
  • 山賊の娘ローニャ
  • Peeping Life 5.0ch
  • うぇいくあっぷがーるZOO!
  • 咲-Saki-阿知賀編episode of side-A
  • も〜っと! おジャ魔女どれみ カエル石のひみつ
  • 秘密結社鷹の爪 The Movie 4 〜カスペルスキーを持つ男〜
  • Selector セレクター
  • 秘密結社 鷹の爪 The Movie II〜私を愛した黒烏龍茶〜
  • Blood-C
  • ARIA The OVA 〜ARIETTA〜
  • ウィッチブレイド
  • Peeping Life-We Are the Hero
  • 旅するぬいぐるみ
  • Fate/stay night フェイト/ステイナイト
  • ほしのこえ
  • おまかせ!みらくるキャット団
  • 秘密結社 鷹の爪 The Movie〜総統は二度死ぬ〜
  • 秘密結社 鷹の爪 The Movie III 〜http://鷹の爪.jpは永遠に〜
  • パプリカ
  • Ex Machina - Appleseed Saga -
  • リトルバスターズ!
  • 茄子 スーツケースの渡り鳥
  • ラストエグザイル 銀翼のファム
  • アップルシード
  • Wake Up,Girls!
  • 魔法少女隊アルス
  • サカサマのパテマ
  • ケイオスドラゴン〜赤竜戦役〜
  • まかせてイルか!
  • Buddha 2 手塚治虫のブッダ -終わりなき旅-
  • 半分の月がのぼる空
  • ワールドフールニュース
  • ロミオ×ジュリエット
  • 雲のむこう、約束の場所
  • SoltyRei ソルティレイ
  • カクレンボ
  • 永久家族
  • 菅井君と家族石 The Movie
  • Wake Up, Girls! 七人のアイドル
  • Red Garden
  • アリーテ姫
  • アジール・セッション
  • Genius Party Beyond
  • Genius Party
  • 星空キセキ
  • はなれ砦のヨナ
  • マインド・ゲーム
  • 惑星大怪獣 ネガドン
  • 楓ニュータウン

抽出方法

今回の抽出の流れを抽出します。

作品名をDOMから探す。

まず、Chrome Developer Toolsの「Elements」を開いて、DOM構造の中から、作品名を探し出します(HTMLソースでは、後から読み込まれたりするものが含まれないため、DOMからコピーします、というか先にDOMを見るのでそうでなくても)

すると、「aria-label」という要素に、格納されていることが分かりました。
netflix-anime-tatile-list-aria-label

DOMをコピーする

次に、「このaria-labelが全作品分含まれたDOMツリー」を、テキスト形式でコピーしたいので、全部含まれそうなDOMツリーのルート部分を右クリックして、「Edit as HTML」をクリックします(最悪bodyタグでもよかったかも)。
netflix-anime-tatile-list-edit-as-html

※ここで一発Copy(Ctrl+C)で終わるものの、ついEdit as HTMLを使ってしまった。

そうしたら、そのDOMがテキストとして編集可能になるので、全体選択(Ctrl+A)してコピー(Ctrl+C)します。
netflix-anime-tatile-list-edit-as-html-copy

これでコピー完了です。

SublimeTextに貼り付けて正規表現で検索する

コピーしたDOMツリーのテキストを、SublimeTextにコピーします。
netflix-anime-title-list-sublimetext-

そして、「aria-labe="(作品名)"」がひっかかるように、SublimeTextの検索窓(Ctrl+F)の正規表現ボタンを「オン」にした上で、検索欄に「aria-label=".+?"」を入力して、「Find All」をクリックします。
netflix-anime-title-list-sublimetext-find-all

↑ここがもっとも重要な手順です。正規表現をオフにして、ワイルドカード(*)を使う、という方法は、一度試しましたが、使えませんでした。完全一致ではない場合は、正規表現を使ってください。また今回は、ダブルクオートが作品名に含まれることは無いだろう、と仮定しています。

検索結果が同時選択される(ポイント)

すると、少々見にくいですが、検索結果が、同時選択(同時編集状態)になります
netflix-anime-title-list-sublimetext-selection-regions

また、左下には「102 selection regions」とあり、102ヶ所が同時選択されており、102作品が存在することがここから確認できます

Sublimeには、この同時編集機能があり、カーソルが複数同時に存在でき、一気に同時入力・同時削除ができます

検索結果を全コピー

そして、その選択されている領域全てを、同時にコピーすることもできます

選択された状態のまま、「Ctrl+C」で、コピーしてください。

コピーできたら、新しくSublime Textのタブを開いて、そこに貼り付けてみてください

抽出した検索結果

貼り付けた結果、次のテキストが取得できました。

aria-label="まんが日本昔ばなし"
aria-label="鋼の錬金術師 Fullmetal Alchemist"
aria-label="あの日見た花の名前を僕達はまだ知らない。"
aria-label="弱虫ペダル"
aria-label="ソードアート・オンライン"
aria-label="ふうせんいぬティニー"
aria-label="Psycho-Pass サイコパス"
aria-label="劇場版STEINS;GATE負荷領域のデジャヴ"
aria-label="化物語"
aria-label="七つの大罪"
aria-label="キルラキル"
aria-label="言の葉の庭"
aria-label="銀の匙 Silver Spoon"
aria-label="古代王者 恐竜キング Dキッズ・アドベンチャー"
aria-label="弱虫ペダル Re:Ride"
aria-label="デュラララ!!"
aria-label="がんばれ!ルルロロ"
aria-label="魔法少女まどかマギカ"
aria-label="美少女戦士セーラームーンR"
aria-label="しまじろうと くじらのうた"
aria-label="しまじろうとフフのだいぼうけん〜すくえ!七色の花〜"
aria-label="わしも"
aria-label="黒執事"
aria-label="シドニアの騎士"
aria-label="映画はなかっぱ 花咲け!パッカ〜ん 蝶の国の大冒険"
aria-label="弱虫ペダル Grande Road"
aria-label="ログ・ホライズン"
aria-label="Peeping Life -手塚プロ・タツノコプロ ワンダーランド-"
aria-label="Blassreiter"
aria-label="おジャ魔女どれみ#"
aria-label="Aria"
aria-label="Peeping Life -The Perfect Extension-"
aria-label="カレイドスター"
aria-label="Fate/Zero"
aria-label="未確認で進行形"
aria-label="劇場版アニメ 忍たま乱太郎 忍術学園 全員出動!の段"
aria-label="イノセンス"
aria-label="一週間フレンズ。"
aria-label="Peeping Life -The Perfect Emotion-"
aria-label="咲-Saki-"
aria-label="Peeping Life -The Perfect Edition"
aria-label="サムライ7"
aria-label="秒速5センチメートル"
aria-label="Peeping Life -The Perfect Evolution-"
aria-label="瀬戸の花嫁"
aria-label="Peeping Life -The Perfect Explosion"
aria-label="咲-Saki-全国編"
aria-label="龍ヶ嬢七々々の埋蔵金"
aria-label="Psycho-Pass 2 サイコパス"
aria-label="茄子 アンダルシアの夏"
aria-label="桃屋xPeeping Life ご縁ですよ!"
aria-label="ブレイブ ストーリー"
aria-label="東京レイヴンズ"
aria-label="山賊の娘ローニャ"
aria-label="Peeping Life 5.0ch"
aria-label="うぇいくあっぷがーるZOO!"
aria-label="咲-Saki-阿知賀編episode of side-A"
aria-label="も〜っと! おジャ魔女どれみ カエル石のひみつ"
aria-label="秘密結社鷹の爪 The Movie 4 〜カスペルスキーを持つ男〜"
aria-label="Selector セレクター"
aria-label="秘密結社 鷹の爪  The Movie II〜私を愛した黒烏龍茶〜"
aria-label="Blood-C"
aria-label="ARIA The OVA 〜ARIETTA〜"
aria-label="ウィッチブレイド"
aria-label="Peeping Life-We Are the Hero"
aria-label="旅するぬいぐるみ"
aria-label="Fate/stay night フェイト/ステイナイト"
aria-label="ほしのこえ"
aria-label="おまかせ!みらくるキャット団"
aria-label="秘密結社 鷹の爪  The Movie〜総統は二度死ぬ〜"
aria-label="秘密結社 鷹の爪  The Movie III 〜http://鷹の爪.jpは永遠に〜"
aria-label="パプリカ"
aria-label="Ex Machina - Appleseed Saga -"
aria-label="リトルバスターズ!"
aria-label="茄子 スーツケースの渡り鳥"
aria-label="ラストエグザイル 銀翼のファム"
aria-label="アップルシード"
aria-label="Wake Up,Girls!"
aria-label="魔法少女隊アルス"
aria-label="サカサマのパテマ"
aria-label="ケイオスドラゴン〜赤竜戦役〜"
aria-label="まかせてイルか!"
aria-label="Buddha 2 手塚治虫のブッダ -終わりなき旅-"
aria-label="半分の月がのぼる空"
aria-label="ワールドフールニュース"
aria-label="ロミオ×ジュリエット"
aria-label="雲のむこう、約束の場所"
aria-label="SoltyRei ソルティレイ"
aria-label="カクレンボ"
aria-label="永久家族"
aria-label="菅井君と家族石 The Movie"
aria-label="Wake Up, Girls! 七人のアイドル"
aria-label="Red Garden"
aria-label="アリーテ姫"
aria-label="アジール・セッション"
aria-label="Genius Party Beyond"
aria-label="Genius Party"
aria-label="星空キセキ"
aria-label="はなれ砦のヨナ"
aria-label="マインド・ゲーム"
aria-label="惑星大怪獣 ネガドン"
aria-label="楓ニュータウン"

※本当は、「()」でキャプチャして、そこだけコピーしたかった。できるか不明。置換はできるのだけれど、コピーはこれでまぁいいか的な。

HTMLリスト形式に変換する

あとは、このブログに掲載するために、「ul」と「li」を使った、HTMLの番号無しリスト形式にします。

SublimeTextの置換機能を使って、「aria-label="」を「<li>」に置換した後、「"」を「</li>」に置換する(順番大事)と、ちょうど検索結果の全行が、「<li>作品名</li>」という形式になります。

最後に、先頭行に「<ul>」、末尾に「</ul>」を付ければ、HTML化完了です。

抽出&変換完了

こうして抽出&変換された結果が、冒頭のアニメ一覧です。

さすがに、手で移すのは大変ですもんね。

なにか応用が利きそうな場面に出会ったら、ぜひ使ってみてください。

コメント(0)

新しいコメントを投稿