用capybara-webkit解析元素文本

时间:2013-03-28 19:32:29

标签: ruby regex web-scraping capybara capybara-webkit

我是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元素。绝对不知道是什么导致了这一点。

有什么想法吗?

0 个答案:

没有答案