<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"]]
我目前正在使用正则表达式&amp; xpath(&#34; // * [@ href] / @ href)获取所有网址和类似内容以获取所有产品名称,然后使用.zip将数组放在一起......但我遇到了一个html我希望按列表列出..
感谢您的帮助!
答案 0 :(得分:0)
你有它。
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