使用HPricot查找链接的文件

时间:2009-10-30 08:53:26

标签: ruby hpricot

我一直在玩HPricot,但经过大量的搜索,我无法解决这个问题。

我正在尝试解析HTML页面并找到所有带有href到mp3文件的标签。到目前为止我已经

<ul>
    <% @page.search('//a[@href*=mp3]').each do |link| %>    
        <li>
            <%= link.inner_text %>
        </li>
    <% end %>
</ul>

工作正常,正则表达式/href\s*=\s*\"([^\"]+)(.mp3)/也可以。我只是不确定如何将两者结合起来。

是否有一个很好的例子或文档,有人可以指出我,以便弄清楚我可以用.search函数做些什么。

由于

2 个答案:

答案 0 :(得分:1)

您可以使用

访问属性href
  

<击> link.attr( 'href' 属性)

作为CSS3选择器,您可能需要考虑@href$=.mp3(而不是*=),因为它只匹配.mp3结束的属性。

修改 你是对的,对不起。我发现,attr只是set的{​​{1}}的别名。确实是正确的方法:

Hpricot::Elements

尽管如此,我想推荐Nokogiri作为Hpricot的faster substitute

答案 1 :(得分:0)

找到了答案。方法是属性,(不是attr),并且括号必须是方形的。 link.attributes['href']