クローラーを書いている
今日の昼くらいからHTTPレスポンスを nokogiri でスクレイピングしています。
試行錯誤したりテストするたびにHTTPリクエスト送っていると待ち時間がチリツモで時間がかかりがちだったので、
HTTPレスポンスをファイルに吐く(キャッシュと呼ぶことにする)ようにすれば最高になると思い、そのようなgemを作ってみました。
ミスヒットすればHTTPリクエストを送信します。キャッシュにヒットすればすぐ返ってきます。
git管理しておけばテストにも使えそうです。
https://github.com/jiikko/http_response_to_fs
OpenURIのopenメソッドの代わりに HttpResponseTofs.open
と呼ぶだけでOKです。
require 'open-uri'
open('http://google.com') # => Fileインスタンス
HttpResponseTofs.open('http://google.net') # => Fileインスタンス
2.4.1 :001 > HttpResponseTofs.cache_dir = './lib/http_cache/'
=> "./lib/http_cache/"
2.4.1 :002 > HttpResponseTofs.open('http://google.net')
=> #<File:./lib/http_cache/http:,,google.net>
2.4.1 :003 > HttpResponseTofs.open('http://google.net')
=> #<File:./lib/http_cache/http:,,google.net> # from cache
キャッシュをおくディレクトリは指定する必要があります。
今のところ最高です。
-
category:
- ruby