поиск связанных файлов с HPricot - PullRequest
1 голос
/ 30 октября 2009

Я поигрался с 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 ]

1 голос
/ 30 октября 2009

Вы можете получить доступ к атрибуту href с помощью

link.attr ( 'HREF')

В качестве селектора CSS3 вы можете рассмотреть @href$=.mp3 (вместо *=), поскольку он соответствует только атрибутам, которые оканчиваются в .mp3.

Edit: Ты прав, прости. Я обнаружил, что attr является только псевдонимом для set для Hpricot::Elements. Правильный путь действительно:

link.attributes['href']

Тем не менее, я хотел бы рекомендовать Nokogiri в качестве более быстрого заменителя для Hpricot.

0 голосов
/ 30 октября 2009

нашел ответ. метод - это атрибуты (не attr), а также квадратные скобки. link.attributes['href']

...