1

我是 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 元素的超时。完全不知道是什么原因造成的。

有什么想法吗?

4

0 回答 0