Top Banner
【CoEdo.rb】Ruby / Ruby on Rails ビギナーズ勉強会 第10回 TickleCode Yoshinori Kobayashi 1 Sinatra x Kimono で作る焼き鳥店舗リスト “Kimono” is web scraping service
23

Sinatra x Kimono で作る焼き鳥店舗リスト “Kimono” is web scraping service|【CoEdo.rb】Ruby / Ruby on Rails ビギナーズ勉強会 第10回

Jan 23, 2017

Download

Software

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Sinatra x Kimono で作る焼き鳥店舗リスト “Kimono” is web scraping service|【CoEdo.rb】Ruby / Ruby on Rails ビギナーズ勉強会 第10回

【CoEdo.rb】Ruby / Ruby on Rails ビギナーズ勉強会 第10回

TickleCode

Yoshinori Kobayashi 1

Sinatra x Kimono で作る焼き鳥店舗リスト

“Kimono” is web scraping service

Page 2: Sinatra x Kimono で作る焼き鳥店舗リスト “Kimono” is web scraping service|【CoEdo.rb】Ruby / Ruby on Rails ビギナーズ勉強会 第10回

2

生まれは 奈良県 です

小林由憲(こばやしよしのり)

Twitter:

TickleCode ブログ:

@yoshiii514

Page 3: Sinatra x Kimono で作る焼き鳥店舗リスト “Kimono” is web scraping service|【CoEdo.rb】Ruby / Ruby on Rails ビギナーズ勉強会 第10回

もくもく会(自主勉強会) を複数の運営メンバーや アドバイザーの方々と ともに、定期開催しています。

勉強会を開催しています)^o^(

3

【CoEdo.rb】

Ruby / Ruby on Rails ビギナーズ勉強会

Swiftビギナーズ勉強会

WordPressもくもく 勉強会

http://wp-moku.doorkeeper.jp/

https://swift-beginners.doorkeeper.jp/

https://coedo-rails.doorkeeper.jp/

自己紹介

Page 4: Sinatra x Kimono で作る焼き鳥店舗リスト “Kimono” is web scraping service|【CoEdo.rb】Ruby / Ruby on Rails ビギナーズ勉強会 第10回

4

Kimono とは?

クラウド上で他のサイトをスクレイピングしてくれて、データも蓄積。

データを取得するためのAPIも生成してくれる。

スクレイピングのための工数が大幅に削減できる!!

Page 5: Sinatra x Kimono で作る焼き鳥店舗リスト “Kimono” is web scraping service|【CoEdo.rb】Ruby / Ruby on Rails ビギナーズ勉強会 第10回

5

Sinatra x Kimono サイト構成

データ

Scraping

API

Kimono はクラウドサービス Kimono が定期的にスクレイピングしてデータを蓄えてくれる。 蓄えたデータをAPIで利用できる。

Page 6: Sinatra x Kimono で作る焼き鳥店舗リスト “Kimono” is web scraping service|【CoEdo.rb】Ruby / Ruby on Rails ビギナーズ勉強会 第10回

今回のプログラムソースは次のGitHubにあります。

6

Kimono > Sinatra > Webサイト

デモします。

https://github.com/YoshinoriKobayashi/sinatra_kimono_yahoo_restaurant

Page 8: Sinatra x Kimono で作る焼き鳥店舗リスト “Kimono” is web scraping service|【CoEdo.rb】Ruby / Ruby on Rails ビギナーズ勉強会 第10回

8

Kimono を手っ取り早く学ぶなら

https://www.kimonolabs.com/learn

★チュートリアル動画

Page 9: Sinatra x Kimono で作る焼き鳥店舗リスト “Kimono” is web scraping service|【CoEdo.rb】Ruby / Ruby on Rails ビギナーズ勉強会 第10回

9

Kimono の特徴

Chrom拡張機能を使って、 Webページ上で項目を指定できる。

Page 10: Sinatra x Kimono で作る焼き鳥店舗リスト “Kimono” is web scraping service|【CoEdo.rb】Ruby / Ruby on Rails ビギナーズ勉強会 第10回

10

Kimono の特徴

CSS セレクタで項目を指定することもできる。

Page 11: Sinatra x Kimono で作る焼き鳥店舗リスト “Kimono” is web scraping service|【CoEdo.rb】Ruby / Ruby on Rails ビギナーズ勉強会 第10回

11

Kimono の特徴

クロール頻度が設定できる。(日・週・月)

Page 12: Sinatra x Kimono で作る焼き鳥店舗リスト “Kimono” is web scraping service|【CoEdo.rb】Ruby / Ruby on Rails ビギナーズ勉強会 第10回

12

Kimono の特徴

ページネーション、Ajaxに対応している。

Page 13: Sinatra x Kimono で作る焼き鳥店舗リスト “Kimono” is web scraping service|【CoEdo.rb】Ruby / Ruby on Rails ビギナーズ勉強会 第10回

13

Kimono の特徴

Modify Results: 取得したデータをクラウド上で整形して、APIで返すことができる。

Page 14: Sinatra x Kimono で作る焼き鳥店舗リスト “Kimono” is web scraping service|【CoEdo.rb】Ruby / Ruby on Rails ビギナーズ勉強会 第10回

14

Kimono Pricing Plan

★フリープラン

・API無制限 ・スケジュール実行 ・APIは公開(だれでも) ・過去30日間のデータにアクセス化

★エンタープライズプラン

・サポート(24時間365日) ・プライベートAPI(非公開) ・高速クロール ・独自APIの開発

Page 15: Sinatra x Kimono で作る焼き鳥店舗リスト “Kimono” is web scraping service|【CoEdo.rb】Ruby / Ruby on Rails ビギナーズ勉強会 第10回

15

Kimono Smart App Builder

https://www.kimonolabs.com/newapp

スマホアプリ(HTML版)をジェネレート

Page 16: Sinatra x Kimono で作る焼き鳥店舗リスト “Kimono” is web scraping service|【CoEdo.rb】Ruby / Ruby on Rails ビギナーズ勉強会 第10回

16

Sinatra について

MVCモデルの軽量フレームワーク。

コードを自動生成する機能はないが、コンパクトで学習コ

ストがかなり低くとても使いやすい!

Page 18: Sinatra x Kimono で作る焼き鳥店舗リスト “Kimono” is web scraping service|【CoEdo.rb】Ruby / Ruby on Rails ビギナーズ勉強会 第10回

18

Sinatra main.rb

require 'sinatra'

require 'sinatra/reloader'

require 'rest_client'

require 'json'

module JSON (Ruby 2.2.0)

APIの結果がJSONなので、JSONモジュールが便利!

Page 19: Sinatra x Kimono で作る焼き鳥店舗リスト “Kimono” is web scraping service|【CoEdo.rb】Ruby / Ruby on Rails ビギナーズ勉強会 第10回

19

Sinatra main.rb

get '/' do

rest = RestClient.get

'https://www.kimonolabs.com/api/34330hpu?apikey=cg9dj

d7otr92ApB2hF22VSs8vEWo7vK3'

rest_json = JSON.parse(rest)

#店舗リストを抽出

@shibuya_shops = rest_json["results"]["collection1"]

erb :index

end

Page 20: Sinatra x Kimono で作る焼き鳥店舗リスト “Kimono” is web scraping service|【CoEdo.rb】Ruby / Ruby on Rails ビギナーズ勉強会 第10回

20

Sinatra index.erb

<h2>渋谷・表参道・青山</h2>

<%

# 1店舗ずつ情報を出力

for shop in @shibuya_shops do

<div class="col-sm-6 col-md-3">

<div class="thumbnail">

<img src="<%= shop['image']['src'] %>"

alt="<%= shop['image']['alt'] %>">

<div class="caption">

<h3><a href="<%=

shop['shop_name']['href'] %>"><%=

shop['shop_name']['text'] %></a></h3>

・・・・

% end %>

Page 21: Sinatra x Kimono で作る焼き鳥店舗リスト “Kimono” is web scraping service|【CoEdo.rb】Ruby / Ruby on Rails ビギナーズ勉強会 第10回

21

Sinatra のススメ!

Railsでなかなか学習が進まない人や、難しいと感じて

いる人はSinatraから初めてみるとよいかもしれないで

す。

Sinatraにはコードを自動生成する機能がないので、1

つずつ組み立てることになりますが、それがMVCを理解

しやすくしてくれます。

また、Rubyの基本文法やGemfile・erbなども活用する

のでRailsを学習していくための基礎体力が身に付きま

す。

Page 22: Sinatra x Kimono で作る焼き鳥店舗リスト “Kimono” is web scraping service|【CoEdo.rb】Ruby / Ruby on Rails ビギナーズ勉強会 第10回

22

今後の問い合わせ先

何かございましたら、

ご連絡ください(・∀・)

Twitter: @yoshiii514

Facebook: Yoshinori.Koba

Mail: [email protected]

最後に

Page 23: Sinatra x Kimono で作る焼き鳥店舗リスト “Kimono” is web scraping service|【CoEdo.rb】Ruby / Ruby on Rails ビギナーズ勉強会 第10回

23

ご清聴ありがとうございました。