/var/www/yatta47.log

/var/www/yatta47.log

やったのログ置場です。スクラップみたいな短編が多いかと。

SQL風の書式で情報を操作するYQLを使い始めてみました。便利だ。

近頃しったYQL。皆さん使っていますかー。

https://developer.yahoo.com/yql/console/developer.yahoo.com

 

個人的に情報を集めるのに重宝しています。今日はそれのご紹介。

情報を扱うことを中心にしている方で使ったことない方はぜひ使ってみてほしい。便利すぎるから!!

 

YQLとは

Yahoo! Query Language。WEB上のリソースにアクセスできるAPI

SQLのような文法で検索できたりして、なにより気に入っているところはJSONで受け取れるところ。

それを活用しようと思います。

まずはやってみよう。

論より証拠。コンソールから実施可能なので使ってみたほうが早いかと。RSSを読み込んでみようかと思います。

実例としては、YoutubeRSSJSONに変換してみます。

読み込むRSSのURLは以下。

https://www.youtube.com/feeds/videos.xml?channel_id=UCpRh2xmGtaVhFVuyCB271pw

それではまず最初にコンソールにアクセスします。

https://developer.yahoo.com/yql/console/

 

さて。実際の書式的には以下。

select * from feed where url='https://www.youtube.com/feeds/videos.xml?channel_id=UCpRh2xmGtaVhFVuyCB271pw'

 

JSONを選択した状態で、YQLステートメントのところにSQLチックなものを入れてTestを実施。これだけです。

f:id:yatta47:20170102161352p:plain

便利だ。最近RubyJSONを扱うのが便利だと感じているのでとても助かる。Nokogiriいらなくなるなこれ。

非常に便利だ。

フィルターを使ってみる

フィルター?オプション?を使ってみようと思います。

 

一部のデータだけ取ってくる

JSONファイルを眺めているとわかるとおり、すべてのデータを取ってきています。

これをビデオID、リンク、タイトル、そしてアベレージを取ってこようと思います。

以下のようにvideoId,link.href,group.title,group.community.starRating.averageを指定します。

select videoId,link.href,group.title,group.community.starRating.average from feed where url='https://www.youtube.com/feeds/videos.xml?channel_id=UCpRh2xmGtaVhFVuyCB271pw'

だいぶ見やすくなった。

並び替えをしてみる

さらに、アベレージで並び替えをしてみようと思う。パイプで情報を渡してあげればいいらしい。

書式的にはSQLの後ろに| sort(field="group.community.starRating.average", descending="true")を付けます。

select videoId,link.href,group.title,group.community.starRating.average from feed where url='https://www.youtube.com/feeds/videos.xml?channel_id=UCpRh2xmGtaVhFVuyCB271pw' | sort(field="group.community.starRating.average", descending="true")

これでアベレージ準に並び替えられたかと思います。

便利じゃ。

 

終わりに

こんな感じでJSONを扱うためにRSSJSONに変換するのだけでもかなり使える。いろいろとサンプルがサイドバーにあるので試してみるともっといろいろなことが試せそうだ。

S3でも似たようなことが最近できるようになったらしいし、便利さしか感じない。

また面白い使い方ができたら紹介したいと思います。

それではー。

 

参考にしたサイト

http://qiita.com/nyatto/items/a50e68b4eabf882edee1