くろあん徒然日記

PCのネタが多い雑記。全てに関して『ド素人』が書き綴るTipsエントリの数々……信憑性はいかほどだろう?

【2020年3月版!】dアニメストアの本店とニコニコ支店の違いは!? 〜簡易スクレイピング方法を添えて〜

タイトルが巷にごまんとあふれる糞クローンサイトみたい。

 

どうもこんにちは、くろあんです。最近のお気に入りテレビ番組は水曜どうでしょうの新作です。ふじむらくぅん!

今回はタイトル通り、dアニメストアの本店(という言い方をこのエントリではします)と、ニコニコ動画内のニコニコ支店の違いを調べてみました!

……というと本当に糞クローンサイトみたいですが、今回調べたのは本店とニコニコ支店が扱っている動画シリーズの違いについてです。糞クローンサイトだと数字でしかモノを語っていないので、「じゃあ一体何が見られて何が見られないのか?」という疑問に全く答えられません。そう、ユーザが求めている情報はコンテンツ数よりも中身なんだよ!!!(当社調べ)

もちろん、扱っているコンテンツの種類だけではなく、機能面や支払い方法など様々な面で本店とニコニコ支店には違う部分があります。が、そういったところは界隈のサイト達に任せましょう。

 

本エントリのターゲット

  • dアニメストア本店とニコニコ支店で扱っているコンテンツは何か、具体的に知りたい方
  • 超簡易的なスクレイピング(Webページの情報取得)の方法を知りたい方
  • dアニメストアについて書いた糞クローンサイトに辟易している方

では行ってみましょう!

 

なんでこんなことを調べたのか

 水曜どうでしょうも好きですが、最近見たもので面白いなあと思っているのは、「名誉の戦死」でおなじみ異種族レビュアーズ。頭が悪い エロい スタッフがヤッてる ポプテピピック同様(熱い風評被害)制作・出演陣の家族が人質に取られている エロに寛容(語弊)なサンテレビですら放送中止にした 子供に深夜アニメを見せている全国の親に喧嘩を売った BPOが苦情に対する議論を打ち切ったアニメとして有名です(褒め言葉)。

頭を空っぽにして見るアニメとしていいんですが、最近ニコニコの公式チャンネルで放送されていることを知って、そちらで視聴していると、やっぱり面白いコメントで溢れているんですよね。Youtubeよりニコニコ世代の人間なので、くだらないコメントだったり、怒涛の大文字赤文字が流れてくるとやっぱり笑っちゃうんですよ。

ただ御存知(?)の通り、ニコニコの公式チャンネルでは、第1話を除き無料で配信されるのは最新話だけで、それ以外はニコニコポイントという有料コンテンツを利用しない人にとっては存在が激薄な通貨を使用する必要があるんですね。しかも2日レンタル形式で220pt(220円)/話。高い。

でもdアニメストアニコニコ支店だと毎月定額で、しかもコメントまで流れてきて、ブラウザに拡張機能を入れれば公式チャンネルのコメントも取得して流してくれる*1、っていうんだったら、今加入しているdアニメストア本店から鞍替えも検討していいかな、と思うわけです。本店もニコニコ支店も月額料金は変わらず440円(税込)だし、ニコニコは(このご時世にも関わらず)プレミアム会員だし。

 

で、やっぱり気になるのは、ニコニコ支店開設以来言われ続けている「コンテンツ数の差」。自分のお気に入りのアニメが本店にあってニコニコ支店にないって言われると悲しいので、まずは調べてみることにしました。

 

調べました、本店とニコニコ支店のコンテンツ

まあ細かい話は置いておいて、本店は さがす | dアニメストア から、ニコニコ支店は 配信ラインナップ | dアニメストア ニコニコ支店 から配信作品を調べることができますが、一覧性が悪すぎるので表を作りました。情報は2020年3月5日午前時点のものです。

 

見ればわかりますが、「概要」シートには作品(シリーズ)数が、「ラインナップ」シートには本店とニコニコ支店の作品一覧が記載されています。「ラインナップ」シートでセルが色付けされているものが、他方のdアニメストアには配信されていない作品で、それらのみを抽出したものが「片方にしかないもの」シートです。

注:上記のスプレッドシートでは、コンテンツタイトルの表記ゆれは全く考慮していません。本店、ニコニコ支店ともに各Webページの表記通りのものを記載しており、このタイトルが完全一致していれば「両サイトに同じコンテンツが配信されている」と判断しています。また、シリーズ内の話数についても全く考慮していません。同じシリーズが配信されていても、配信されている話数が異なる場合があります。

糞クローンサイト各種では、シリーズ数も概数でしか載っていませんが、このスプレッドシートには一の位まで書いてありますよ!(どうでもいい)

本店が3322本、ニコニコ支店が2674本……600本以上の差がついているのは凄いですね。ただ、本店の配信コンテンツには2.5次元舞台?とか声優の動画?とかも含まれており、600本の中にはそれらが多分に含まれています。個人的にはそこらへんの動画には興味ないので、デメリットとは思っていません。

しかしそれらを除いても、有名所のアニメがいくつかニコニコ支店では配信されていないようです。アイマスガンダム銀魂コードギアスジョジョデジモンプリキュアなどなど、皆さんにとっても聞いたことのあるメジャータイトルが本店にしかない、という可能性は高そうです。

 

 

 

ということで、dアニメストア本店とニコニコ支店で配信されているコンテンツの違いについてまとめました!

最後までお読みいただき、ありがとうございました!!!(糞クローンサイト並感)

 

 

 

 

 

 

 

 

まだだ、まだ終わらんよ。

奥さん知ってました? これJavaScriptに関するエントリなんですよ?

ということで、ここからはテクノロジー的なお話。dアニメストアの話だけ聞きに来た方はそのままお帰りください。

 

先程の表は、当然ながら手入力、ではありません。6000件近いレコードを手入力するとかそれどんな地獄(白目)

それぞれ配信リストが載っているページの情報を取得しています。今回は、Google Chromeのコンソールでできる超お手軽スクレイピングを利用しました。

 

方法はいたってシンプル。

  1. 右クリックから「検証」を開き、コンソール画面を出す
  2. 「$$("selector").property」を入力
  3. 情報ゲット!

……シンプル!(大事なことなので2回)

 

例えば本店のコンテンツリストには、各作品名に対しクラス名"ui-clamp"が付されています。なので、

$$(".ui-clamp")[i].innerText

とか書いてfor文で回してあげれば取得できます。

実際に取得時に使用したソースコードは次の通り。

<本店用>

// 変数初期化。あ行・か行・さ行…‥の各行につき1回だけ
var content = ;

 

// あ段・い段・う段・え段・お段のそれぞれに1回ずつ
for (var i = 0; i < $$(".ui-clamp").length; i++){
content.push($$(".ui-clamp")[i].innerText);
}

 

// クリップボードに貼り付け。各行の終わりに1回だけ
copy(content);

ただし、本店の場合は遅延ロードが利用されているため、ページ全体の情報を取得するには一度ページを最後まで読み込む必要があります。

本当ならそこも自動化して「スクレイピング」と言うべきでしょうが、やり方もよく分からなかったしサーバに負担かけるのも不本意だし何より調べるのが面倒だったので、今回は手動でページ最下部までスクロールしてから上記のコードを実行しました。

あと、あ行・か行・さ行……と行を変えるたびリロードが発生するので変数がリセットされます。なので、各行で最初に変数を初期化した後、あ段・い段・う段……のそれぞれにfor文を回し、お段が終わったところでcopyして情報をクリップボードにコピーして、メモ帳なりどこかに貼り付けておいて次の行へ……みたいなことをします。

 

続いてニコニコ支店用。こちらは1枚のページに全情報が遅延ロードなしに読み込まれるので(モバイル環境に優しいかはともかく)もっと簡単です。各行の見出しにクラス名"readbox"が付されているので、そこから読み取りに行きます。

<ニコニコ支店用>

// 変数初期化。1回だけ
var content = ;

 

// 各行(あ行・か行・……・わ行)について、作品リストを取得
for (var i = 0; i < $$(".readbox").length; i++){
content.push($$(".readbox")[i].innerText);
}

 

// クリップボードに貼り付け。ラストに1回だけ
copy(content); 

 「スクレイピングなんてやったことない……」という方も、上のコードのうち「<ニコニコ支店用>」以外を丸々コピーして、配信リストのページでコンソール画面開いてペーストしてEnterキーを押せばスクレイピングできます。

ちなみにこちらのソース中のcontentには、改行文字が\nで出力されるので、テキストエディタなどで置換してあげれば、1レコード1行の表示にできます。正規表現が使える置換で

(置換前)\\n -> (置換後) \n

としてあげれば大丈夫です。エスケープ処理がポイント。改行文字はお使いのOSに合わせて変更してください。

 

ということで、超簡易版スクレイピングの方法でした。個人的にはコンソールで「$$」と打つだけで情報を取ってこれることが驚きでした(初耳)

……ここまで読んでいただいた方ならわかると思いますが、簡易版だけあって手動作業が合間合間に挟まり何気に面倒です。なので上記のスプレッドシートの更新は今後しません。

 

言い訳タイム

スクレイピングをするにあたって、一番気をつけなければいけないのは「本当にそのWebページでスクレイピングをしてもよいのか」ということ。

今回の方法だと、サーバへの負担は通常使用時の範囲内(アクセスが手動)であり、まして他のページの情報を取りに行くでも、コードを埋め込むでもなく、さらに取得した情報がdアニメストアの会員でなくても(ログインしなくても)確認できる公開情報であったこと、利用規約にそれらしき文言が見当たらなかったこと*2から、今回のようなスクレイピングを使用し、作成したコンテンツリストの公開を行いました。

ただ法律関係はよく分からないので、アカンそうだったら優しくお教えいただければ幸いです。このエントリ自体を取り下げます。

 

 

 

以上です。良いdアニメ&ニコニコ&スクレイピングライフを!

 

*1:https://dic.nicovideo.jp/a/d%E3%82%A2%E3%83%8B%E3%83%A1%E3%82%B9%E3%83%88%E3%82%A2%20%E3%83%8B%E3%82%B3%E3%83%8B%E3%82%B3%E6%94%AF%E5%BA%97#h2-3 を参照

*2:dアニメストア(本店)の利用規約第6条第6項の2に「お客さまは、対象コンテンツの全部または一部を複製(中略)することを行ってはなりません。」とありますが、「対象コンテンツ」とは「提供され動画コンテンツ」と第1条第1項で定められているので、配信コンテンツのタイトルは「対象コンテンツの複製」には当たらない、と判断しています。というのも、動画データ中にはメタデータとしてタイトルも含まれているのかもしれませんが、今回は動画の中に含まれるメタデータを取得したわけではなく、あくまで公開されているWebページに記載のテキストデータを取得したものだからです。