我是 Ruby 和 Capybara 的新手,我正在尝试使用 capybara-webkit 来抓取网站。我感兴趣的所有数据都位于td
具有某些属性的标签中。
form
我正在查看的特定表单元素在哪里,以下代码有效:
form.all('td').detect do |td|
if td['valign'] == 'top' && td['nowrap'] != 'nowrap'
print "#{td.text}\n"
end
end
td
我感兴趣的所有元素的内容都被正确打印出来了。但是,当我尝试使用正则表达式解析文本时:
form.all('td').detect do |td|
if td['valign'] == 'top' && td['nowrap'] != 'nowrap'
print "#{td.text}\n"
val1, val2 = td.match(/(\d)(\d)/).captures # The real regex is more complex
end
end
...突然只有第一个td
元素被读取/解析。我什至尝试将每个td.text
值推入一个数组以供以后解析,但同样的事情发生了。我什至尝试过克隆td.text
字符串并对其进行操作——不走运。页面上似乎没有任何会更改 HTML 元素的超时。完全不知道是什么原因造成的。
有什么想法吗?