Rubyで楽天商品検索API
最近,蚊やデング熱が流行った.その結果,フマキラーや製薬会社の株価が上がったらしい.
人は流行をすぐに察知して,流行に関係する会社の株を購入していれば,多分儲けられる.(ただし,良い印象の流行に限る)
でも,実際それは難しい.ちくいちトレンドを調べるのは面倒.
そこで思った.アプリがトレンドになったキーワードから株価の上がりそうな会社を見つけることができたら良いよね.
てなわけで,勉強中のRubyで楽天商品検索WebAPIを使って,トレンドから有望な会社を見つけようとした.
結果:今回は失敗.楽天市場で出品している会社は株式を公開していない.
手順:
1.WebAPIを調査
楽天ウェブサービス: 楽天商品検索API(version:2014-02-22) | API一覧
kizasi.jpでホットワードを取得
楽天で会社を取得.楽天APIを実行するにはappIDの取得が必要.
2.実装.
XML形式のデータを扱うため,Nokogiriライブラリを使ってます.
事前に gem install nokogiri でインストールしておいてね.
3. 実行結果.
なんか微妙.
Yahooファイナンスで出店名をを調べてみるが,どれも株を公開していない.
わかったことは,楽天の出品している会社は株式公開していないってことです.
今後の課題:
他のWebAPIで有望会社を取得するか.
会社からキーワードを取得して共起するトレンドキーワードがあるかを調べるか
他の手法をやってみるといいかも.おしまい!
RubyでHTML解析が超余裕なんです
昨日ラーメン屋に行ってから,ずっと下痢気味&頭痛い状態だったけど,今は割りと腹痛いだけで済んでいる.
なんかRubyでHTML解析しようぜっという話が出てきたから,今日はその実装をしてみました.
RubyのNokogiriというライブラリを使うと本当に簡単.超余裕です.
んで,解析する対象となるページはこれ「http://umie.jp/news/event/」.神戸のイベント一覧が表示されたページ.
イベント取得して,旅行者に提示してみるとかを今後やるつもり.(イベント数が多くないことは考えない)
っというわけで以下は手順.
手順
1.このブログを読む.
http://morizyun.github.io/blog/ruby-nokogiri-scraping-tutorial/#7
これ以上わかりやすい記事があるか,というぐらいわかりやすい良記事.
ぶっちゃけこれだけ読めばHTMLの解析は大丈夫.
ちなみに,HTML解析&抽出を「Webスクレイピング」というらしい.今後ググるときはこのキーワードでググろう.
今回の主役は「Nokogiri」とっても簡単にWebスクレイピングを実現できちゃうライブラリみたいなもん.
rubyは既にインストールしているので,以下のコマンドを実行してNokogiriをインストール.
gem install nokogiri
2.解析する対象のページをHTMLを見る
んで,次のコードを実行する.
多分,xpathの一行がよくわからんと思う.これはこのページを見るとOK.
http://blog.takuros.net/entry/2014/04/15/070434
これもわかりやすい.
結果,取得できた.
TwilioAPIでHelloMonkeyを言わせてみる
プログラムから電話がかけられるTwilioAPIを使ってみた.
一応,Twilioさんが用意した電話番号に自分のスマホから電話すると,「Hello Monkey」と返事してくるぐらいまではやれた.ものすごく時間がかかったけどね...
その手順を紹介します.Twilioについての紹介は面倒,別記事に良い説明があるのでURLを載せておきますので,参照すると良いです.
HelloMonkeyを電話で言わせるまでの手順
- Twilioについて調べた.
内部で何やっているかざっとわからんと,やりにくいので調べます
Twilio をはじめるのに知っておくと良いこと6つ(Twilio API勉強会@大阪) - Shin x blog - Rubyでやってみる
Rubyが初めての人でも使えるように分かりやすいドキュメントがあるのは嬉しい.
書いてある通りに,いろいろインストール.
Twilio Docs - Ruby Install - Twilioマックアップ言語を少し知る(Twilioに命令するためのXMLのこと)
Rubyでマックアップ言語を出力させれば,その通りにTwilioさんが動いてくれし,しゃべってくれる.
-
TwilioをRubyで利用してみる[環境構築]
Twilio Docs - Quickstart Ruby Devenvironment
twimi-quickstart.rbはコピペして,実行すれば簡単にできていいのだが,
次の「Twilioにサーバーを見つけさせる」のが少し面倒だった.Twilioにサーバーを見つけさせるには,二つの方法がある
- 外部からアクセスしているサーバーにプログラムを置く
- ローカルのサーバーを外部からアクセスできるようにして,プログラムを置く.
前者の方法は,ロリホップやAmazonWebServiceなどのサーバーをレンタルする必要があって,今までやったことがあるので,今回は後者をやってみた.
外部からアクセスできるようにするには,「Ngrok」が利用しました.
ngrok - secure introspectable tunnels to localhost
ngrokを利用すると,ローカルサーバーに置いたプログラムを外部からアクセスできるようになります.そんで,書いたコードが以下のものです.
本当は,動的にXMLを出力するようにしたかったけど,何故上手くいかなかったので,仕方がなく print で出力する仕様.これをサーバー上に置く.
最後にTwilioの電話番号とローカルサーバーを同期させれば完了.
以下のようにすればOK.
Twilioの番号に電話をかけると,何でも良いので数字を入力しろと言われるので,入力.すると,「Hello Monkey」と言ってくれた.
コードうんぬんより環境準備するだけで,なんか疲れた.
JavascriptでFoursquareのAPIを使ってみた
RettyというグルメサイトはFoursqareのAPIを使っているみたい.
位置や街の情報を利用したい時は使えそうなので,実行だけでもしてみた.
<h4手順
- IDの取得
今回は二つのIDを取得します.Foursquareの開発者ページに以下の画像のような項目があります.その中の"create an app"というリンクでIDを取得します. - 調べる
Outh認証があると,個人に特化した情報を提供できるようですが,今回は認証は使えわないで一般的な情報を取得します
参考資料1
参考資料2 - ちょっとコードを書く
JQueryでajax使うとコードがコンパクトね. ajaxでも複雑になる場合は
を使うと良いみたい.APIはID貼り付けてコピペすれば多分実行できます
JavaScriptでYahooLocalSearchを使う方法
JavaScriptでYahooLocalSearchを実行できます
手順
・Yahooディベロッパー登録(無料)をしてappIdを取得
・以下のコードをコピペ
・取得したappIdを貼り付ける
おしまい.後は好きなように表示させてくださいな.
(全然教えてはいない)
DeNA ライブコーディング行ってきた
今日DeNAさんが開催したライブコーディングEventに参加してきました.
イベント会場場所
イベント会場は渋谷ヒカリヤの中にあるDeNAさんの本社でした.
すげーオサレな場所でした,参考用に画像を貼っておきます.
画像内のスクリーンにライブコーディングの様子が映っていました.
ライブコーディングの概要
ライブコーディングする人は,元Googleで今はDeNAにいるトップクラスのエンジニアさんでした.
お題は「HTML5とJavaScriptでWebカメラをいじろう」的な感じだったと思います.
Webカメラから取れる映像をWebサイトに描画して,グレースケール・シャープ・ぼかし等していましたね.
印象的だったのは,解説者がコードを指摘したり質問をライブコーダーに投げた部分です.たまーに,参加者にも質問を投げてました.「皆はvi派とemacs派どっちなの?」みたいな質問もあったんですが,どちらでもない人はどう対応すればいいのでしょうかね.エンジニアとしてアウトなのでしょうかね^^;
参加者について
参加者は40~50人くらい.ほぼ大学生〜大学院生っぽい.東北から来た人とかいたので,いろんな所から来てると思います.
ライブコーディング中は皆各々のPCを開いて,スクリーンをじ~と見ていましたね.
スクリーンに映るコードを見ながら,コーディングする強者もいれば
何をやっているのか全然わからず,手を動かさず,ただただスクリーンを見るしかない人もいました(はい.これは僕です^^;)
わからなかった原因は,JavaScriptとかWebGLとかほとんど触れてこなかったからですね.はい,単なる勉強不足です.もし,今日のコードがアップされてたら,勉強がまだできるのに...(誰かアップしてないかな〜とか甘いこと考えいます)
ライブコーディング後の懇親会
思ったことは以下の3つかな
・ご飯おいしかったです
・皆俺よりすげーエンジニアだったわー.
ご飯美味しかったです.懇親会始まってしばらく黙々と食べちゃいました.
また食べたいです(小並感)
もう眠いから今日はお終い.ではでは.