回答編集履歴
11
修正
test
CHANGED
@@ -74,6 +74,64 @@
|
|
74
74
|
|
75
75
|
```Ruby
|
76
76
|
|
77
|
+
require"open-uri"
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
base = "https://mixch.tv"
|
82
|
+
|
83
|
+
|
84
|
+
|
85
|
+
user_ids = [ユーザID, ユーザID, ユーザID, ユーザID]
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
user_ids.each do |element|
|
90
|
+
|
91
|
+
url = base + "/u/" + element
|
92
|
+
|
93
|
+
sum = 0
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
loop{
|
98
|
+
|
99
|
+
data = open("#{url}", &:read)
|
100
|
+
|
101
|
+
movies = data.scan(%r|class="item" href="(.+?)"|).flatten
|
102
|
+
|
103
|
+
next_url = data.scan(%r|<a href="(.+?)">次へ</a>|).flatten
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
sum += movies.length
|
108
|
+
|
109
|
+
|
110
|
+
|
111
|
+
if next_url.empty?
|
112
|
+
|
113
|
+
break
|
114
|
+
|
115
|
+
end
|
116
|
+
|
117
|
+
|
118
|
+
|
119
|
+
url = base + next_url[0]
|
120
|
+
|
121
|
+
}
|
122
|
+
|
123
|
+
|
124
|
+
|
125
|
+
p "#{element} : #{sum}"
|
126
|
+
|
127
|
+
end
|
128
|
+
|
129
|
+
```
|
130
|
+
|
131
|
+
自己満足のために追記
|
132
|
+
|
133
|
+
```Ruby
|
134
|
+
|
77
135
|
require"open-uri" #インターネットにつなぐためのライブラリを呼び出している。
|
78
136
|
|
79
137
|
|
10
修正
test
CHANGED
@@ -102,7 +102,7 @@
|
|
102
102
|
|
103
103
|
|
104
104
|
|
105
|
-
data = open("#{url}", &:read) #
|
105
|
+
data = open("#{url}", &:read) #urlを開いて読み込む。読み込んだ結果をdataに入れる。
|
106
106
|
|
107
107
|
|
108
108
|
|
@@ -116,7 +116,7 @@
|
|
116
116
|
|
117
117
|
|
118
118
|
|
119
|
-
sum += movies.length #moviesの要素の数をlengthを使って数えて、sumに加える。
|
119
|
+
sum += movies.length #moviesの要素の数を「length」を使って数えて、sumに加える。
|
120
120
|
|
121
121
|
|
122
122
|
|
9
修正
test
CHANGED
@@ -86,7 +86,7 @@
|
|
86
86
|
|
87
87
|
|
88
88
|
|
89
|
-
user_ids.each do |element| #ユーザIDの配列から1つずつ順番に要素を取り出して
|
89
|
+
user_ids.each do |element| #ユーザIDの配列から1つずつ順番に要素を取り出してelementに入れる。
|
90
90
|
|
91
91
|
|
92
92
|
|
@@ -136,7 +136,7 @@
|
|
136
136
|
|
137
137
|
|
138
138
|
|
139
|
-
url = base + next_url[0] #loopが終了した場合はここまで到達しない。到達する場合は次のページがあるので次のページのurlを作る。
|
139
|
+
url = base + next_url[0] #「loop」が終了した場合はここまで到達しない。到達する場合は次のページがあるので次のページのurlを作る。
|
140
140
|
|
141
141
|
|
142
142
|
|
8
修正
test
CHANGED
@@ -110,7 +110,7 @@
|
|
110
110
|
|
111
111
|
#そうすると[[/u/動画ID],[/u/動画ID], [/u/動画ID], [/u/動画ID]]
|
112
112
|
|
113
|
-
#みたいな
|
113
|
+
#みたいな配列ができるので、「flatten」を使って
|
114
114
|
|
115
115
|
#[/u/動画ID, /u/動画ID, /u/動画ID, /u/動画ID]という形にする。
|
116
116
|
|
7
修正
test
CHANGED
@@ -74,44 +74,80 @@
|
|
74
74
|
|
75
75
|
```Ruby
|
76
76
|
|
77
|
-
require"open-uri"
|
77
|
+
require"open-uri" #インターネットにつなぐためのライブラリを呼び出している。
|
78
78
|
|
79
79
|
|
80
80
|
|
81
|
-
base = "https://mixch.tv"
|
81
|
+
base = "https://mixch.tv" #urlの基本になる部分。
|
82
|
-
|
83
|
-
user_ids = [ユーザID, ユーザID, ユーザID, ユーザID]
|
84
82
|
|
85
83
|
|
86
84
|
|
87
|
-
user_ids
|
85
|
+
user_ids = [ユーザID, ユーザID, ユーザID, ユーザID] #ユーザIDを配列にすることで複数のユーザを対象にクロールできる。
|
88
86
|
|
89
|
-
url = base + "/u/" + element
|
90
87
|
|
91
|
-
sum = 0
|
92
88
|
|
93
|
-
l
|
89
|
+
user_ids.each do |element| #ユーザIDの配列から1つずつ順番に要素を取り出して「element」に入れる。
|
94
90
|
|
95
|
-
data = open("#{url}", &:read)
|
96
91
|
|
97
|
-
movies = data.scan(%r|class="item" href="(.+?)"|).flatten
|
98
92
|
|
99
|
-
su
|
93
|
+
url = base + "/u/" + element #開くurlを作る。「https://mixch.tv/u/ユーザID」
|
100
94
|
|
101
|
-
next_url = data.scan(%r|<a href="(.+?)">次へ</a>|).flatten
|
102
95
|
|
103
|
-
if next_url.empty?
|
104
96
|
|
97
|
+
sum = 0 #動画数を合計するための入れ物
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
loop{ #繰り返しの処理(複数ページを持つユーザ用)
|
102
|
+
|
103
|
+
|
104
|
+
|
105
|
+
data = open("#{url}", &:read) #「url」を開いて読み込む。読み込んだ結果をdataに入れる。
|
106
|
+
|
107
|
+
|
108
|
+
|
109
|
+
movies = data.scan(%r|class="item" href="(.+?)"|).flatten #dataから正規表現で「class="item" href="(.+?)"」を抜き出す。
|
110
|
+
|
111
|
+
#そうすると[[/u/動画ID],[/u/動画ID], [/u/動画ID], [/u/動画ID]]
|
112
|
+
|
113
|
+
#みたいな結果が返ってくるので、「flatten」を使って
|
114
|
+
|
115
|
+
#[/u/動画ID, /u/動画ID, /u/動画ID, /u/動画ID]という形にする。
|
116
|
+
|
117
|
+
|
118
|
+
|
119
|
+
sum += movies.length #moviesの要素の数をlengthを使って数えて、sumに加える。
|
120
|
+
|
121
|
+
|
122
|
+
|
123
|
+
next_url = data.scan(%r|<a href="(.+?)">次へ</a>|).flatten #次のページがあるか調べる。
|
124
|
+
|
125
|
+
|
126
|
+
|
127
|
+
if next_url.empty? #next_urlが空の場合
|
128
|
+
|
129
|
+
|
130
|
+
|
105
|
-
break
|
131
|
+
break #「loop」を終了させる。
|
132
|
+
|
133
|
+
|
106
134
|
|
107
135
|
end
|
108
136
|
|
137
|
+
|
138
|
+
|
109
|
-
url = base + next_url[0]
|
139
|
+
url = base + next_url[0] #loopが終了した場合はここまで到達しない。到達する場合は次のページがあるので次のページのurlを作る。
|
140
|
+
|
141
|
+
|
110
142
|
|
111
143
|
}
|
112
144
|
|
145
|
+
|
146
|
+
|
113
|
-
p "#{element} : #{sum}"
|
147
|
+
p "#{element} : #{sum}" #ユーザIDと動画数を表示させる。
|
114
148
|
|
115
149
|
end
|
116
150
|
|
151
|
+
#シャープより右はコメント
|
152
|
+
|
117
153
|
```
|
6
修正
test
CHANGED
@@ -67,3 +67,51 @@
|
|
67
67
|
特定のユーザのページに行ってソースコードを開きclass="item"の数を数えます。(正規表現など。)
|
68
68
|
|
69
69
|
|
70
|
+
|
71
|
+
追記
|
72
|
+
|
73
|
+
3について
|
74
|
+
|
75
|
+
```Ruby
|
76
|
+
|
77
|
+
require"open-uri"
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
base = "https://mixch.tv"
|
82
|
+
|
83
|
+
user_ids = [ユーザID, ユーザID, ユーザID, ユーザID]
|
84
|
+
|
85
|
+
|
86
|
+
|
87
|
+
user_ids.each do |element|
|
88
|
+
|
89
|
+
url = base + "/u/" + element
|
90
|
+
|
91
|
+
sum = 0
|
92
|
+
|
93
|
+
loop{
|
94
|
+
|
95
|
+
data = open("#{url}", &:read)
|
96
|
+
|
97
|
+
movies = data.scan(%r|class="item" href="(.+?)"|).flatten
|
98
|
+
|
99
|
+
sum += movies.length
|
100
|
+
|
101
|
+
next_url = data.scan(%r|<a href="(.+?)">次へ</a>|).flatten
|
102
|
+
|
103
|
+
if next_url.empty?
|
104
|
+
|
105
|
+
break
|
106
|
+
|
107
|
+
end
|
108
|
+
|
109
|
+
url = base + next_url[0]
|
110
|
+
|
111
|
+
}
|
112
|
+
|
113
|
+
p "#{element} : #{sum}"
|
114
|
+
|
115
|
+
end
|
116
|
+
|
117
|
+
```
|
5
修正
test
CHANGED
@@ -64,6 +64,6 @@
|
|
64
64
|
|
65
65
|
3
|
66
66
|
|
67
|
-
特定のユーザのページに行ってソースコードを開きclass="item"の数を数えます。
|
67
|
+
特定のユーザのページに行ってソースコードを開きclass="item"の数を数えます。(正規表現など。)
|
68
68
|
|
69
69
|
|
4
修正
test
CHANGED
@@ -58,7 +58,7 @@
|
|
58
58
|
|
59
59
|
もしかしたらリンクしているかも?。
|
60
60
|
|
61
|
-
追記:改めて質問を見てみるとタグ
|
61
|
+
追記:改めて質問を見てみるとタグでした。
|
62
62
|
|
63
63
|
|
64
64
|
|
3
修正
test
CHANGED
@@ -58,6 +58,8 @@
|
|
58
58
|
|
59
59
|
もしかしたらリンクしているかも?。
|
60
60
|
|
61
|
+
追記:改めて質問を見てみるとタグになっていました。
|
62
|
+
|
61
63
|
|
62
64
|
|
63
65
|
3
|
2
修正
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
1
|
2
2
|
|
3
|
-
ミックスチャンネルの動画どうやって探してる?超便利な検索方法教えます!
|
3
|
+
[ミックスチャンネルの動画どうやって探してる?超便利な検索方法教えます!](http://do-ra.org/2016/08/02/52760/)
|
4
4
|
|
5
5
|
こちらのサイトに書いてある「サイト内検索」を利用すると良さそうです。
|
6
6
|
|
1
修正
test
CHANGED
@@ -1,17 +1,67 @@
|
|
1
|
-
|
1
|
+
1
|
2
2
|
|
3
|
-
|
3
|
+
ミックスチャンネルの動画どうやって探してる?超便利な検索方法教えます!
|
4
4
|
|
5
|
-
「
|
5
|
+
こちらのサイトに書いてある「サイト内検索」を利用すると良さそうです。
|
6
6
|
|
7
|
-
「はじまりの恋」
|
7
|
+
「はじまりの恋site:https://mixch.tv」で検索すれば
|
8
8
|
|
9
|
-
|
9
|
+
「はじまりの恋」という単語が含まれる動画が表示されます。
|
10
10
|
|
11
|
-
|
11
|
+
雰囲気それらしい動きをするだけでよいのなら
|
12
12
|
|
13
|
-
|
13
|
+
「はじまりの恋site:https://mixch.tv」の「はじまりの恋」の部分を他の
|
14
14
|
|
15
|
+
曲名に変えながらループを回して検索結果の件数を取得していくのが
|
16
|
+
|
15
|
-
一番簡単な方法だと私は思います。
|
17
|
+
一番簡単な方法だと私は思います。
|
16
18
|
|
17
19
|
そもそも、どこから曲名を手に入れるのかという問題がありますが。
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
2
|
24
|
+
|
25
|
+
「https://mixch.tv/c/数字」
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
この数字の部分を変更すると動画の一覧の内容が変化します。
|
30
|
+
|
31
|
+
私が試したのだと
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
1 顔出し
|
36
|
+
|
37
|
+
3 Love
|
38
|
+
|
39
|
+
4 おもしろ
|
40
|
+
|
41
|
+
10 ツインズ
|
42
|
+
|
43
|
+
13 世界一?
|
44
|
+
|
45
|
+
12 ダイエット?
|
46
|
+
|
47
|
+
14 ギター?
|
48
|
+
|
49
|
+
18 自撮り?
|
50
|
+
|
51
|
+
19 コスプレ?
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
という雰囲気でした(上4つはサイトで表示されているカテゴリ。それ以外は私個人の予想。)
|
56
|
+
|
57
|
+
私はMixChannelを利用していないのでよく分かりませんがアプリ内のカテゴリと
|
58
|
+
|
59
|
+
もしかしたらリンクしているかも?。
|
60
|
+
|
61
|
+
|
62
|
+
|
63
|
+
3
|
64
|
+
|
65
|
+
特定のユーザのページに行ってソースコードを開きclass="item"の数を数えます。
|
66
|
+
|
67
|
+
|