1

私はHPricotで遊んでいますが、かなりの量の検索を行った後、これを解決することができませんでした。

HTMLページを解析して、mp3ファイルへのhrefを持つすべてのタグを見つけようとしています。これまでのところ私は持っています

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

これは正常に機能しており、正規表現/href\s*=\s*\"([^\"]+)(.mp3)/も機能しています。2つを組み合わせる方法がわかりません。

.search関数で何ができるかを理解するために、誰かが私に指摘できる良い例やドキュメントはありますか。

ありがとう

4

2 に答える 2

1

href次のコマンドで属性にアクセスできます

link.attr('href')

CSS3セレクターとして、で終わる属性のみに一致するため@href$=.mp3、(ではなく)検討することをお勧めします。*=.mp3

編集: その通り、ごめんなさい。私は、それattrがのエイリアスにすぎないことを知りましsetHpricot::Elements。正しい方法は確かに:

link.attributes['href']

それでも、Hpricotのより高速な代替品としてNokogiriをお勧めしたいと思います。

于 2009-10-30T09:46:59.310 に答える
0

答えが見つかりました。メソッドは属性(attrではない)であり、ブラケットは正方形である必要があります。 link.attributes['href']

于 2009-10-30T08:55:58.777 に答える