LoginSignup

This article is a Private article. Only a writer and users who know the URL can access it.
Please change open range to public in publish setting if you want to share this article with other users.

More than 3 years have passed since last update.

カクヤスAPIが欲しい人生だった

Last updated at Posted at 2018-01-16
1 / 27
  • これは shibuya.rb のネタLTの資料を otemachi.rb 向けに更新したものです
  • スライドモードで見ることを想定しています。

kaiba.inspect

  • twitter@kaiba
  • shibuya.rb, Tokyo Rubyist Meetup, よちよち.kotlin
  • 日本酒、ビールに異常な執着がある
  • Rails & iOS
  • とりあえずなんでもやってみる

:warning: あんまりな内容なのでスライドは非公開かも


:beers: ビールを飲みたい

  • 家で
  • ゆるい勉強会で
  • 第三のビール100円、生ビール150円くらい…

そこで酒のカクヤスアウトレットですよ

image.png


でもすぐ売り切れちゃうので公開されたら通知して欲しい


カクヤスAPIが欲しい人生だった…


そこでスクレイピングですよ

  • HTMLを無理やりプログラムで読んじゃうぞ!

みんなご存知Nokogiri


image.png


蛇足

  • 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に通知できたよ〜 :relaxed:

image.png


めでたしめでたし

  • ありがとうございました!

ちょ、まてよ?!


抽象化すれば…?

dom = parse(Nokogiri::HTML(open("ここと").read))
res = dom.css("ここを")

  • 任意のURLの、任意の部分の変更を通知するウェブサービスはどうだろうか?
  • セレクタの知識は必要になるのが悩ましい…
  • 通知先をSlack、Desktop Notification、RSS、LINE、メールなんかに設定できるようにして…

あれ、でもこれ、なんか聞いたことがあるような…


「それPlaggerでできるよ」うな…? :thinking:


でも面白そうだから作ってみた

  • [Q] こういうのって公開してもいいのかな…?

スクショ

スクリーンショット 2018-01-30 20.25.10.png


スクショ

スクリーンショット 2018-01-30 20.24.17.png


Feedbackとか


0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up