Ruby Nokogiri解析列表中的多个元素


<div class='prdlist'>
 <ul>
  <li class='first'>
   <a href="some url 1">
    <div class="text>
     <br>product number 1
    </div>
   </a>
  </li>
  <li class='second'>
   <a href="some url 2">
    <div class="text">
     <br>product number 2
    </div>
   </a>
  </li>
</ul>
</div>

使用上面的例子,

我想解析每个列表中的值,一个列表一个列表。比如:

html.xpath("//*[@class='prdlist']/ul/li'").each do |each|
 url = each.xpath/css (parse the href from each list)
 name = each.xpath/css (parse the text from each list)
end
arr << [url,name]

最终输出:

arr = [["some url 1","product number1"],["some url2","product number2"]]

我目前正在使用正则表达式&xpath("//*[@href]/@href)获取所有url,类似于获取所有产品名称,然后使用.zip将数组放在一起…但是我遇到了一个html,我想一个列表一个列表地做。

谢谢你的帮助!

好了。

arr = []
html.css("div.prdlist li").each do |me|
    url  = me.css("a").map{|link| link['href']}[0]
    name = me.text.delete("n").split.join(" ")
    arr << [url,name]
end

相关内容

  • 没有找到相关文章

最新更新