Ruby - 按ID查找标签

时间:2015-06-06 18:01:56

标签: ruby web-scraping nokogiri

我使用的是机械化和nokogiri。我试图找到这个标签。当我检查HTML时,它看起来像这样。

<table class="matchupBox" id="MLB_5_block ">

当我在我的控制台中将其打印出来时,它看起来像这样

#<Nokogiri::XML::Element:0x2cc1a1c name="table" attributes=[
#<Nokogiri::XML::Attr:0x2cc1940 name="class" value="matchupBox">,
 #<Nokogiri::XML::Attr:0x2cc192c name="id" value="MLB_5_block\r\n            ">]

我正在使用此代码。

doc.search("table#MLB_5_block")

但它并不匹配。虽然这匹配

doc.search("table.matchupBox")

所以我认为这个问题与#34; \ r \ n&#34;网站正在添加的空白区域。我如何使用id匹配它,而不依赖于那个空格?

1 个答案:

答案 0 :(得分:1)

你试着这样做:

doc.search("//table[normalize-space(@id) = 'MLB_5_block']")
  

normalize-space函数返回带有空格的参数字符串,该空格通过去除前导和尾随空格并用空格替换空白字符序列来规范化。