- これは shibuya.rb のネタLTの資料を otemachi.rb 向けに更新したものです
- スライドモードで見ることを想定しています。
kaiba.inspect
- twitter@kaiba
- shibuya.rb, Tokyo Rubyist Meetup, よちよち.kotlin
- 日本酒、ビールに異常な執着がある
- Rails & iOS
- とりあえずなんでもやってみる
あんまりな内容なのでスライドは非公開かも
ビールを飲みたい
- 家で
- ゆるい勉強会で
- 第三のビール100円、生ビール150円くらい…
そこで酒のカクヤスアウトレットですよ
でもすぐ売り切れちゃうので公開されたら通知して欲しい
カクヤスAPIが欲しい人生だった…
そこでスクレイピングですよ
- HTMLを無理やりプログラムで読んじゃうぞ!
みんなご存知Nokogiri
蛇足
- looferというHTMLサニタイザーが依存している。
- APIモードだといらない?
- action viewをつかうのでいる
- oga というスクレイピングgemがある。libxmlに依存していないのでインストールが楽、早い。
こんなかんじにスクレイピングできます
dom = parse(Nokogiri::HTML(open(OUTLET_URL,
'r:Shift_JIS').read))
outlets = dom.css('.itemListArea li')
outlets.each do |a|
# ...
end
CSSセレクタで好きな要素を取ってこれる!
これ進研ゼミ(jQuery)でやったやつや!
Slackに通知できたよ〜
めでたしめでたし
- ありがとうございました!
ちょ、まてよ?!
抽象化すれば…?
dom = parse(Nokogiri::HTML(open("ここと").read))
res = dom.css("ここを")
- 任意のURLの、任意の部分の変更を通知するウェブサービスはどうだろうか?
- セレクタの知識は必要になるのが悩ましい…
- 通知先をSlack、Desktop Notification、RSS、LINE、メールなんかに設定できるようにして…
あれ、でもこれ、なんか聞いたことがあるような…
「それPlaggerでできるよ」うな…?
でも面白そうだから作ってみた
- [Q] こういうのって公開してもいいのかな…?
スクショ
スクショ
Feedbackとか
- Kimonoというscapingサービスがあったがサービス終了
- https://github.com/kaibadash/otsumami