我会使用机械化。第一个页面很“棘手”,因为登录表单位于 iframe 中。因此,您可以只使用加载 iframe 的源。方法如下:
agent = Mechanize.new
# Get first page
iframe_url = 'https://www.banksafe.com/sfonline/'
page = agent.get(iframe_url)
login_form = page.forms.first
username_field = login_form.field_with(:name => "12345678")
# Get second page
response = login_form.submit
second_login_form = response.forms.first
password_field = second_login_form.field_with(:password => "xxxxx")
# Get page to scrap
response = second_login_form.submit
这就是你如何处理这样的场景。显然,您可能需要准确地适应这些表单/字段的编写方式以及其他特定页面的详细信息,但我会采用这种方法。