質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

10637閲覧

MixChannel(ミックスチャンネル)のAPIありませんか…?

hacosato

総合スコア48

スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2017/03/18 14:32

動画SNSのMixChannel(ミックスチャンネル・ミクチャ)の情報を収集したいと思っています。
https://mixch.tv/

  • 特定のBGMが使われてる曲がいくつあるか(BGMが使われている動画にはそれ用のリンクがついています)←これがいちばんやりたい
  • 特定のタグがついてる動画がいくつあるか
  • 特定のユーザーが投稿している動画がいくつあるか

こういうのを調べたいです。

ミクチャは基本的にはスマホアプリから楽しむ想定のようで、パソコンからでは閲覧だけできるみたいです。

たとえばスマホアプリでこの動画を見ると
https://mixch.tv/m/N4p0RraB
スクショ
「はじまりの恋」という曲が使われているってことがわかります。
スマホでここをタップすると、同じ曲が使われている動画がほかにどれだけあるか表示されます。

でもパソコンで同じ動画を見ても、この曲が使われているとは表示されません。HTMLを見ても出てきません。

こういうときはどうしたらいいでしょうか?

さがしてみた感じAPIなさそうなのですが、さがし方がよくないのでしょうか?

スクレイピングするとしたらどういう手がかりで進めていったらよさそうでしょうか?

アドバイスいただけるとうれしいです! よろしくお願いします!

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

1
ミックスチャンネルの動画どうやって探してる?超便利な検索方法教えます!
こちらのサイトに書いてある「サイト内検索」を利用すると良さそうです。
「はじまりの恋site:https://mixch.tv」で検索すれば
「はじまりの恋」という単語が含まれる動画が表示されます。
雰囲気それらしい動きをするだけでよいのなら
「はじまりの恋site:https://mixch.tv」の「はじまりの恋」の部分を他の
曲名に変えながらループを回して検索結果の件数を取得していくのが
一番簡単な方法だと私は思います。
そもそも、どこから曲名を手に入れるのかという問題がありますが。

2
https://mixch.tv/c/数字」

この数字の部分を変更すると動画の一覧の内容が変化します。
私が試したのだと

1 顔出し
3 Love
4 おもしろ
10 ツインズ
13 世界一?
12 ダイエット?
14 ギター?
18 自撮り?
19 コスプレ?

という雰囲気でした(上4つはサイトで表示されているカテゴリ。それ以外は私個人の予想。)
私はMixChannelを利用していないのでよく分かりませんがアプリ内のカテゴリと
もしかしたらリンクしているかも?。
追記:改めて質問を見てみるとタグでした。

3
特定のユーザのページに行ってソースコードを開きclass="item"の数を数えます。(正規表現など。)

追記
3について

Ruby

1require"open-uri" 2 3base = "https://mixch.tv" 4 5user_ids = [ユーザID, ユーザID, ユーザID, ユーザID] 6 7user_ids.each do |element| 8 url = base + "/u/" + element 9 sum = 0 10 11 loop{ 12 data = open("#{url}", &:read) 13 movies = data.scan(%r|class="item" href="(.+?)"|).flatten 14 next_url = data.scan(%r|<a href="(.+?)">次へ</a>|).flatten 15 16 sum += movies.length 17 18 if next_url.empty? 19 break 20 end 21 22 url = base + next_url[0] 23 } 24 25 p "#{element} : #{sum}" 26end

自己満足のために追記

Ruby

1require"open-uri" #インターネットにつなぐためのライブラリを呼び出している。 2 3base = "https://mixch.tv" #urlの基本になる部分。 4 5user_ids = [ユーザID, ユーザID, ユーザID, ユーザID] #ユーザIDを配列にすることで複数のユーザを対象にクロールできる。 6 7user_ids.each do |element| #ユーザIDの配列から1つずつ順番に要素を取り出してelementに入れる。 8 9 url = base + "/u/" + element #開くurlを作る。「https://mixch.tv/u/ユーザID」 10 11 sum = 0 #動画数を合計するための入れ物 12 13 loop{ #繰り返しの処理(複数ページを持つユーザ用) 14 15 data = open("#{url}", &:read) #urlを開いて読み込む。読み込んだ結果をdataに入れる。 16 17 movies = data.scan(%r|class="item" href="(.+?)"|).flatten #dataから正規表現で「class="item" href="(.+?)"」を抜き出す。 18 #そうすると[[/u/動画ID],[/u/動画ID], [/u/動画ID], [/u/動画ID]] 19 #みたいな配列ができるので、「flatten」を使って 20 #[/u/動画ID, /u/動画ID, /u/動画ID, /u/動画ID]という形にする。 21 22 sum += movies.length #moviesの要素の数を「length」を使って数えて、sumに加える。 23 24 next_url = data.scan(%r|<a href="(.+?)">次へ</a>|).flatten #次のページがあるか調べる。 25 26 if next_url.empty? #next_urlが空の場合 27 28 break #「loop」を終了させる。 29 30 end 31 32 url = base + next_url[0] #「loop」が終了した場合はここまで到達しない。到達する場合は次のページがあるので次のページのurlを作る。 33 34 } 35 36 p "#{element} : #{sum}" #ユーザIDと動画数を表示させる。 37end 38#シャープより右はコメント

投稿2017/03/18 16:00

編集2017/03/19 15:43
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hacosato

2017/03/19 03:58

ありがとうございます♪♪ 1. サイト内検索だと、同名のちがう曲を見分けられなかったり、 一般的すぎる曲名(『恋』とか)を見抜けないみたいでした…。 スマホアプリだとタグみたいなのがついてるので、それを使えたらいいと思うんですが、 PCサイトのHTMLだと載らないみたいです。 なにか方法はありますでしょうか? 2. その数字を変えて、カテゴリ? タグ?の表示を変えられるのは途中で気づいたのですが、 ミクチャの動画にはそれとはべつに無数のタグがあるようです。 なにかタグごとにURLでまとまっていればと思うのですが、なさそうですか…? わたしもミクチャにそんなに詳しくなくて、質問があやふやですみません。 3. ほんとですね! ありがとうございます。 ページをまたぐと数えにくそうですが、がんばってみます!
退会済みユーザー

退会済みユーザー

2017/03/19 06:01 編集

やはりカテゴリとタグは別物でしたか。3については作ってみました。 今の私の実力ではこれ以上のことは難しいです。
hacosato

2017/03/19 11:39

カテゴリとタグはべつ…なのだとおもいますたぶん。 Rubyありがとうございます。シンプルに書けるんですね。 練習と思ってPythonに翻訳してみます。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問