如何使用Nokogiri和at_css获取img src

时间:2014-05-20 13:08:51

标签: ruby-on-rails ruby ruby-on-rails-4 nokogiri

我试图获取HTML块的src值。我特意尝试使用at_css并且不使用XPath来实现此目的。

到目前为止,我所得到的只是零或空字符串。

这是HTML:

<div class="" id="imageProductContainer">
  <a id="idLinkProductMainImage" href='URL'>
    <img id="productMainImage" src="SRC.jpg" alt="alt" title="A Title" align="left" class="product_image_productpage_main selectorgadget_selected">
  </a>  
</div>

我的代码是:

item = page.doc.at_css("#productMainImage img").text.strip unless page.doc.at_css("#productMainImage img").nil?

puts item #prints blank
item = item["src"]
puts item #prints blank

page.doc是Nokogiri HTML元素。

1 个答案:

答案 0 :(得分:12)

如果您需要src属性,可以这样做:

pace.doc.at_css('#idLinkProductMainImage img').attr('src')

另外,我认为问题在于您获得img标记的方式。您正试图在img中获取所有#productMainImage个标记,但此id是图像本身,因此它不会找到任何内容。

如果您使用了链接ID #idLinkProductMainImage,那么您可以使用img标记在其中进行搜索。