前回は、私の開発したユーチューバープレスを使い、今話題のトレンドワードを自動取得し、そのキーワードで検索したYoutube動画を自動投稿する方法を紹介しました。
今回は、さらに進めて特定のサイトからキーワードをスクレイピングして、その結果からYoutube動画を自動検索する方法を紹介します。
有線のランキングチャートから話題のヒットソング動画を投稿する
例えば、有線の番組表からランキングチャートを取得して、今週のヒットソングだけをスクレイピングで抽出することができます。
スクレイピングしたデータを元にYoutube動画を検索すれば、ヒットソングだけを自動投稿することができます。
サンプルとして有線の週間J-POPチャート オンエアリストを使います。
▼週間J-POPチャート オンエアリスト
https://www.cansystem.info/program/ch_201
スクレイピングするサイトはURLが固定のものを使って下さい。
URLが固定でページの内容が変わるものが望ましいです。URLが変わってしまうものはスクレイピングするデータが古いままになってしまいます。
その他、レコチョクなんかも取得に適しています。
▼レコチョク シングルランキング
https://recochoku.jp/ranking/single/weekly/
なぜスクレイピングをするのか?
スクレイピングをする理由ですが、単にウェブページにアクセスしただけでは、全てのデータを取得して終わってしまいます。
ウェブページのデータ全ては不要で、その中の特定の場所だけが欲しい場合、スクレイピングをして不要な場所を削ぎ落とす必要があります。
それがスクレイピングの役割です。
スクレイピングを実践する
スクレイピングするコツはHTMLのソースコードを読むことです。
そんなに難しくはないのでチャレンジしてみてください。
まず、ブラウザでソースコードを表示します。
Chromeを使っていればマウスの右ボタンをクリックしてポップアップメニューから「検証」を選択してクリックします。
今回スクレイピングしたい範囲は「週刊有線ヒットポップス」と「HOT SELECT」のテーブルです。
この範囲だけが欲しいわけです。クリックする場所はテーブルの上にします。
▼週間J-POPチャート オンエアリスト
https://www.cansystem.info/program/ch_201
今週であれば「日向坂46」の「ドレミソラシド」が1位なので「ドレミソラシド」の上で右ボタンから「検証」をクリックします。
するとChromeのデベロッパー ツール画面が開きます。
デベロッパー ツールの開き方は画面幅と設定によってまちまちですが、とにかく開くはずです。
デベロッパー ツールにマウスをあてると該当する箇所が青く反転することが分かります。
今回、テーブルのデータが欲しいのでマウスを動かしてテーブルだけが青く反転する箇所を特定します。
特定したらそのままマウスの右ボタンをクリックして [ Copy ] → [ Copy element ] をクリックします。
するとその箇所のHTMLコードだけをコピーできます。
それをメモ帳などに貼り付けます。
以下のような感じになっているはずです。
<div class="programlist">
<table class="pdata">
<tbody><tr>
<th>順位</th>
<th>楽曲</th>
<th>歌手</th>
</tr>
<tr>
<td>1</td>
<td>ドレミソラシド</td>
<td>日向坂46</td>
</tr>
<tr>
<td>2</td>
<td>優しいあの子</td>
<td>スピッツ</td>
</tr>
<tr>
<td>3</td>
<td>いのちのよろこび</td>
<td>でんぱ組.inc</td>
</tr>
<tr>
<td>4</td>
<td>人生Blues</td>
<td>モーニング娘。19</td>
</tr>
<tr>
<td>5</td>
<td>Boy With Luv</td>
<td>BTS</td>
</tr>
<tr>
<td>6</td>
<td>Sing Out!</td>
<td>乃木坂46</td>
</tr>
<tr>
<td>7</td>
<td>愛のカタチ</td>
<td>海蔵亮太</td>
</tr>
<tr>
<td>8</td>
<td>まちがいさがし</td>
<td>菅田将暉</td>
</tr>
<tr>
<td>9</td>
<td>兵、走る</td>
<td>Bz</td>
</tr>
<tr>
<td>10</td>
<td>ハルノヒ</td>
<td>あいみょん</td>
</tr>
<tr>
<td>11</td>
<td>「ひとりで生きられそう」って それってねえ、褒めているの?</td>
<td>Juice=Juice</td>
</tr>
<tr>
<td>12</td>
<td>紅蓮華</td>
<td>LiSA</td>
</tr>
<tr>
<td>13</td>
<td>片隅</td>
<td>三浦大知</td>
</tr>
<tr>
<td>14</td>
<td>Buenos Aires</td>
<td>IZ*ONE</td>
</tr>
<tr>
<td>15</td>
<td>CHANGE</td>
<td>山下智久</td>
</tr>
<tr>
<td>16</td>
<td>Naughty Girl</td>
<td>King & Prince</td>
</tr>
<tr>
<td>17</td>
<td>パプリカ</td>
<td>Foorin</td>
</tr>
<tr>
<td>18</td>
<td>Ambitious</td>
<td>Superfly</td>
</tr>
<tr>
<td>19</td>
<td>トップガン</td>
<td>NEWS</td>
</tr>
<tr>
<td>20</td>
<td>5×20</td>
<td>嵐</td>
</tr>
<tr>
<td>21</td>
<td>愛だけがすべて-What do you want?-</td>
<td>Hey!Say!JUMP</td>
</tr>
<tr>
<td>22</td>
<td>Pretender</td>
<td>Official髭男dism</td>
</tr>
<tr>
<td>23</td>
<td>STAND-ALONE</td>
<td>Aimer</td>
</tr>
<tr>
<td>24</td>
<td>夏のどこかへ</td>
<td>WANIMA</td>
</tr>
<tr>
<td>25</td>
<td>ある日願いが叶ったんだ</td>
<td>V6</td>
</tr>
<tr>
<td>26</td>
<td>Oh No 懊悩</td>
<td>こぶしファクトリー</td>
</tr>
<tr>
<td>27</td>
<td>忘れられないの</td>
<td>サカナクション</td>
</tr>
<tr>
<td>28</td>
<td>JAN JAN JAPANESE</td>
<td>郷ひろみ</td>
</tr>
<tr>
<td>29</td>
<td>Lights</td>
<td>BTS</td>
</tr>
<tr>
<td>30</td>
<td>HANDS UP</td>
<td>Kis-My-Ft2</td>
</tr>
</tbody></table>
</div>
HTMLタグが分からなくてもポイントだけ押さえておけば大丈夫です。
見るべきところは「class=”○○○”」と「id=”○○○”」という記述です。
classはクラスセレクタと呼び、idはIDセレクタと呼びます。
これはセレクタと呼ばれるもので、どこになにがあるか名前が付いていると思って下さい。
さきほど取得したテーブルのHTMLコードには「class=”programlist”」と「class=”pdata”」という記述が2箇所あります。
これがHTMLソースからランキングテーブルの場所を特定する名前(セレクタ)だと思って下さい。
今回の場合、IDセレクタはありませんでした。
次にテーブルのデータから必要な情報だけを抽出します。
テーブルデータのHTMLを見ると以下のような繰り返しであることが分かります。
<tr>
<td>順位</td>
<td>曲名</td>
<td>アーティスト名</td>
</tr>
必要なのは曲名とアーティスト名ですよね。順位は不要です。
曲名とアーティスト名は<td>タグで囲まれていて、2番目と3番目であることが分かります。
「<tr>」タグは行の区切りです。
するとスクレイピングする場所は
「.programlist .pdata tr」
の
「td,1」と「td,2」ということになります。
「td,1」というのは「<td>タグ」の「2番目」という意味です。カンマで区切ります。
2番目なのに1である理由は、プログラムでは数字は0から始まるからです。
間違って「td,0」にしてしまうと順位を取得してしまうので注意して下さい。
ユーチューバープレスでは3つまでスクレイピングするセレクタを選択できます。
上記の特定した結果をユーチューバープレスのフィードに登録します。
キーワードはスクレイピングに失敗した場合に代替的に使用されますので、汎用的なキーワードを指定しておいてください。
最後に [ 登録する ] ボタンをクリックして保存します。
補足ですが、ユーチューバープレスではスクレイピングしたデータをランダムで選択し、動画検索をします。
例えば、ランキングチャートが40位まであったら、その中から1つランダムで選択し動画検索をします。
ランダムであることに注意して下さい。