View
449
Download
1
Category
Preview:
Citation preview
ありがちなユースケース
● ミニリュウかわいいよ、ミニリュウ!● 会社近辺に出現したら 仕事をサボってでも
即座に捕まえに行かなければ!● ポケモン探索サービス (e.g. PokeVison) を
定期的にチェックして出現したら通知したい
Capybaraとは?
● ブラウザテストのフレームワーク● ブラウザ操作の内部DSLを提供してくれる● ドライバを変更することでブラウザを
切り替えることが出来る– Selenium (WebDriver)
– PhantomJS (ヘッドレスブラウザ)
– etc...
対象ページ
● 今回は P-GO SEARCH を利用させてもらったhttps://pmap.kuku.lu/※特定サービスへのWebスクレイピングは自己責任でお願いします
雑ポイント (1)
● API解析とかしない– Ajaxな動的コンテンツをまるっと扱えるので楽
● ターゲット(ミニリュウ)のチェックは該当要素の存在可否をCSSでチェック– has_css? メソッド– CSSセレクタはDevToolsで抽出して調整すると楽
雑ポイント (2)
● 通知=ブラウザでページ開く– 「とりあえず気づければいいや」の精神– 真面目にやるならば Slack 通知とか
● 定期実行=シェルスクリプト– 「ソフトウェアを梃子として使う」の精神
今後の展望(あるならば、たぶんない)
● 実行の度にブラウザが起動してウザい– ヘッドレスブラウザのドライバに切り替えよう– Poltergeist など
● 通知や定期実行– herokuなどで動かしてSlack通知とか出来ると
素敵ですね● Slack Bot とか
– Ruboty とかで実装すると素敵ですね
まとめ● 雑にWebスクレイピングをしたい場合は Capybara を
オススメしたい– Ajax な動的コンテンツを気にする必要なし– CSSセレクタ、あとはページコンテキストでのJS実行
なども可能なので、慣れ親しんだ Web の技術でだいたいの問題が解決できる
– ただし富豪的なアプローチではある● 仕事中でもミニリュウを捕まえることが出来ますね
– 実際はちゃんと真面目に働いてますよ!
Recommended