【发布时间】:2014-04-29 05:23:46
【问题描述】:
以下代码成功提取tid和term数据:
(Uri Agassi 慷慨地回答)
for i in (1..10)
doc = Nokogiri::HTML(open("http://somewebsite.com/#{i}/"))
tids = doc.xpath("//div[contains(concat(' ', @class, ' '),' thing ')]").collect {|node| node['data-thing-id']}
terms = doc.xpath("//div[contains(concat(' ', @class, ' '),' col_a ')]").collect {|node| node.text.strip }
tids.zip(terms).each do |tid, term|
puts tid+" "+term
end
end
来自以下示例 html:
<div class="thing text-text" data-thing-id="29966403">
<div class="thinguser"><i class="ico ico-water ico-blue"></i>
<div class="status">in 7 days
</div>
</div>
<div class="ignore-ui pull-right"><input type="check box" >
</div>
<div class="col_a col text">
<div class="text">foobar
</div>
</div>
<div class="col_b col text">
<div class="text">foobar desc
</div>
</div>
</div>
如果我想以同样的方式提取状态(“7 天内”字符串)信息,那么最好的方法是什么?我好像搞不懂。
有人能详细解释一下 tids 和 terms assignment lines 的实际作用吗?我不明白,Nokogiri 文档似乎没有涵盖这一点。
非常感谢。
~克里斯
【问题讨论】:
标签: html ruby-on-rails ruby xpath nokogiri