2014-12-06 2 views
0

При использовании Nokogiri для разбора HTML и выбора a элементов с class="favorite":Extract значение `href` atributes с использованием Nokogiri

galleries = doc.css(".favourite a") 
#doc variable contains return of Nokogiri::HTML(source_page.body) 

puts galleries возвращается:

<a href="/galleries/6730">...</a> 
<a href="/favourites/40565414">...</a> 
<a href="/galleries/10851">...</a> 
<a href="/favourites/40850848">...</a> 

Как я могу извлечь только /galleries/[0-9]+ значения href атрибут?

ответ

1
galleries.xpath("@href[contains(., 'galleries')]").map(&:value) 
# => ["/galleries/6730", "/galleries/10851"] 
1

Используя больше рубин и меньше XPath

doc.css('.favourite a').map{ |a| a['href'][%r{galleries/\d+}] }.compact 
Смежные вопросы