Ruby on Rails アプリケーションで Mechanize と Nokogiri を使用して、ローカル プリンターの管理パネルをスクレイピングし、プリンターの有効期間中に印刷されたページ数を取得しています。
次のレーキタスクがあります。
# Logs into printer admin page and retrieved counts.
require 'rubygems'
require 'mechanize'
require 'logger'
# Create a new mechanize object
agent = Mechanize.new
# Load the printer admin page
page = agent.get("http://192.168.1.126/index.html?lang=1")
# Select the form with an action of index.cqi
form = agent.page.form_with(:action => "index.cgi")
form.radiobuttons_with(:id => '0x3fdb24153404')[1]
# Submit the form
page = form.submit form.buttons.first
pp page
それは以下を返します:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<script type="text/javascript">
<!--
window.onload=function(){setTimeout(function(){document.menu_link.submit();},0);}
//-->
</script>
</head>
<body>
<form name="menu_link" action="index.html" method="post" enctype="application/x-www-form-urlencoded">
<input type="hidden" name="lang" value="1">
</form>
</body>
</html>
上記のページでフォームを選択できないようで、スクリプトがそのページで停止し、リダイレクトに従っていないようです。
この種のリダイレクトを処理する標準的な方法はありますか? リダイレクトが行われるまでスクリプトを一時停止することはありますか? リダイレクトが機能することをすべて許可しますか?
任意のポインタをいただければ幸いです!