Rubyでスクレイピング&はてなブログ投稿
RubyによるWebクローラー開発を少し習いました。
早速RubyでWeb上の情報をスクレイピングしてきて、どこかにまとめておきたいな〜と考えていました。
そこで今回は、最近のカラオケ楽曲に疎くならないように、今人気のカラオケ楽曲について、すぐに聴けるように動画(PVとoff vocal)を取得するクローラーを作りました。
Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例
- 作者: 佐々木拓郎,るびきち
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2014/08/22
- メディア: 単行本
- この商品を含むブログ (10件) を見る
下のページが、プログラムの自動生成で作成したページです↓
rubyで行ったスクレイピング処理
カラオケサイトから楽曲ランキングをスクレイピング
人気楽曲のランキングはDAMの週間ランキングページからスクレイピングしてます。
JOYSOUNDでも良かったのですが、DAMのほうが処理が楽だったので。
Youtubeから楽曲PVを取得。
次にその楽曲のPVを取得します。
こちらはクローラーでスクレイピングした、と言うよりYoutube DATA APIを用いてYoutubeから楽曲を検索して動画URLを取得してます。
ついでに指定方法を変え、off vocalの動画も取得するようにしました。
これは楽曲のPV観て、即off vocal動画でカラオケの練習ができるようにするためです。
全部の動画を載せると(回避方法はあるにはあるけど)ページがものすごく重いので、20曲中5曲をランダムにピックアップしてます。
また、カラオケの週間ランキングはそうそう大きく変動しないため、今回載せれなかった動画はまた次回の投稿でランキングに入ってて載ってくれるだろう、ということで掲載を5曲に絞りました。
紹介した楽曲をAmazonで検索
あと、動画のアーティストの曲が気になったとき用に、ページの最後にAmazonのリンクを生成して並べてあります。
Amazonのサイトからアルバム内の曲も試聴できるので、もしかしたら思わぬお気に入りの曲を見つけるかもしれませんし…!
はてなブログへ自動投稿
Rubyでカラオケランキングを取得、その曲のPVを取得、その曲が収録されてるCDをAmazonで検索。
これらの情報をまとめて、最後にはてなブログに自動で投稿させます。
定期的にはてなブログの「カラオケランキング」タグの記事を毎週チェックしておけば、最近のカラオケになんとかついていけそうです…!!
(まぁ、そんなにランキング変動しないので毎週する必要はありませんが(汗)
以上、Rubyでクローラー作って色んなサイトスクレイピングして記事生成を行った内容でした。
データを集める技術 最速で作るスクレイピング&クローラー (Informatics&IDEA)
- 作者: 佐々木拓郎
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2016/11/29
- メディア: 単行本
- この商品を含むブログを見る
以下こぼれ話。
記事のタグの作成方法に予想外に手こずった...(汗)。
あと、記事のアイキャッチ画像も自動生成したかったのですが、はてなフォトライフに投稿ができず一旦断念。
簡単な自動生成自体はできてるんですが(汗)。
取得する動画が、公式PVでないのもあるのも、悩ましい所(汗)。リンクのページでは西野カナさんのDarlingなど。
公式PVかどうか見分けられたら良いですが…。チャンネルの公式マークの有無等で判別も考えましたが、公式マークの無い大手のチャンネルもありますし、うーん。
動画載せなかった楽曲にも説明文つけておくべきだった。
書きなぐった汚い実装ですが技術的なことはまた時間見つけて投稿するようにします(汗)