4

私は困惑しています!

毎分実行するようにcron化されたrakeタスクがあります。

ログインすると、関心のある JSON が見つかりますが、JSON の変更が rake タスクで認識されるまでに、タスクを最大 30 回実行できます。その間、特定の JSON オブジェクトのいくつかの変更を見逃していました。

キャッシングが行われているようです。示されているように Mechanize キャッシングをオフにしようとしましたが、他に何ができるかわかりません。

ポインタはありますか?

前もって感謝します。

  agent = Mechanize.new # {|a| a.log = Logger.new(STDERR) }
  agent.history.clear
  agent.max_history = 0
  agent.user_agent_alias = 'Mac Safari'
  page = agent.get 'http://website.com'
  form = page.forms.first
  form.email = 'me@home.com'
  form.password = 'mypassword'

  page = agent.submit form
  page = agent.get 'http://website.com/password_protected_page'
  jsonDirty = page.search '//script[@type="application/json"]'

サーバーからの応答:

{"server"=>"nginx", "date"=>"Thu, 13 Sep 2012 14:16:43 GMT", "content-type"=>"text/html; charset=utf-8", "connection"=>"close", "vary"=>"Cookie", "content-language"=>"plfplen", "set-cookie"=>"csrftoken=pVDg2SJ4KHqONz2OiEkNK7IbKlnJSQQf; expires=Thu, 12-Sep-2013 14:16:43 GMT; Max-Age=31449600; Path=/, affiliate=; expires=Thu, 01-Jan-1970 00:00:00 GMT; Max-Age=0; Path=/, one-click-join=; expires=Thu,01-Jan-1970 00:00:00 GMT; Max-Age=0; Path=/", "expires"=>"Thu, 01 Jan 1970 00:00:01 GMT", "cache-control"=>"no-cache", "content-encoding"=>"gzip", "transfer-encoding"=>"chunked"}
4

1 に答える 1

1

URL にランダムなクエリ パラメータを追加してみてください。そのような:

page = agent.get "http://website.com/password_protected_page?random=#{Time.now.to_i}"
于 2012-09-11T12:46:46.110 に答える