<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