2016-03-03 67 views
0

找到形式,我有以下代码机械化不能行动

mechanize = Mechanize.new do |agent| 
    agent.user_agent_alias = 'Windows Chrome' 
end 
page = mechanize.get("https://sports.bwin.com/en/sports#leagueIds=6004&sportId=7") 
puts page.body 
form = page.form_with(:action => "/en/sports/indexmultileague") 
pp form 

我可以放的输出看到page.body与我正在寻找的动作形式在HTML中存在,但pp表格只是打印无

+0

您确定该表格不是由JavaScript创建的吗? –

+0

这是否意味着机械化无法得到它?我的理解是,它以与浏览器相同的方式解析最终的输出HTML? – db579

+0

@ db579你能分享你试图获取表单的页面的网址吗?更好地编辑答案并在那里添加它,假设它不是一个密码保护页面,它将需要您的用户名/密码 –

回答

2

当我查看页面源时,我无法看到这样的表单。

但是,使用Chrome检查器工具(显示动态内存页面源),我能够看到该表单。

这意味着窗体是通过脚本动态生成的,并且Mechanize不支持脚本。

您将需要使用支持脚本的网络驱动程序。

例如,如果您使用的是硒,您可以查看表格部分here

你可以潜入Selenium's documentation来解决你想要做的事情。

+0

我明白了。我很感激这可能超出了这个问题的范围,但是你能够发布一个例子吗? – db579

+0

@ db579答复已更新 –