1

我一直在玩 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 功能做什么。

谢谢

4

2 回答 2

1

您可以href使用

链接.attr('href')

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

编辑: 你是对的,对不起。我发现,这attr只是 for 的set别名Hpricot::Elements。正确的做法确实是:

link.attributes['href']

尽管如此,我还是想推荐 Nokogiri 作为 Hpricot 的更快替代品。

于 2009-10-30T09:46:59.310 回答
0

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

于 2009-10-30T08:55:58.777 回答