Ruby 使用HPricot查找链接文件
我一直在玩弄HPricot,但经过大量的搜索,我还没能解决这个问题 我正在尝试解析一个HTML页面,并在mp3文件中找到所有带有href的标记。到目前为止,我已经Ruby 使用HPricot查找链接文件,ruby,hpricot,Ruby,Hpricot,我一直在玩弄HPricot,但经过大量的搜索,我还没能解决这个问题 我正在尝试解析一个HTML页面,并在mp3文件中找到所有带有href的标记。到目前为止,我已经 <ul> <% @page.search('//a[@href*=mp3]').each do |link| %> <li> <%= link.inner_text %> </li> <%
<ul>
<% @page.search('//a[@href*=mp3]').each do |link| %>
<li>
<%= link.inner_text %>
</li>
<% end %>
</ul>
-
它工作正常,正则表达式,/href\s*=\s*\“([^\“]+)(.mp3)/
也可以工作。我只是不知道如何将两者结合起来
有没有一个好的例子或文档可以让我参考,以了解我可以使用.search函数做什么
谢谢你找到了答案。方法是attributes(而不是attr),并且括号必须是正方形<代码>链接。属性['href']找到了答案。方法是attributes(而不是attr),并且括号必须是正方形
link.attributes['href']
您可以使用
link.attr('href')
作为CSS3选择器,您可能需要考虑<代码> @ HeRF$= .MP3(而不是<代码> *= /代码>),因为它只匹配在<代码>中结束的属性。MP3 < /P>
编辑:
你说得对,对不起。我发现,attr
只是Hpricot::Elements
的set
的别名。正确的方法确实是:
link.attributes['href']
尽管如此,我还是想推荐Nokogiri作为Hpricot的代理 您可以使用访问属性
href
link.attr('href')
作为CSS3选择器,您可能需要考虑<代码> @ HeRF$= .MP3(而不是<代码> *= /代码>),因为它只匹配在<代码>中结束的属性。MP3 < /P>
编辑:
你说得对,对不起。我发现,attr
只是Hpricot::Elements
的set
的别名。正确的方法确实是:
link.attributes['href']
尽管如此,我还是想推荐Nokogiri作为Hpricot的代理 我已经能够使用将所有指向mp3文件的链接归档,但是我仍然不确定如何在该链接中隔离href。我已经能够使用将所有指向mp3文件的链接归档,但是我仍然不确定如何在该链接中隔离href。感谢andre-r,当我使用该方法时,我收到了错误未定义的方法“attr”。我已经包括了HPricot和open uri gems。有什么我遗漏的吗?谢谢andre-r,当我使用未定义的方法'attr'时,我得到了错误。我已经包括了HPricot和open uri gems。有什么我遗漏的吗?