如何使用Mechanize从列表项中获取文本?

时间:2015-06-18 03:02:57

标签: ruby rubygems mechanize mechanize-ruby

<div class="carstd">
  <ul>
    <li class="cars">"Car 1"</li>
    <li class="cars">"Car 2"</li>
    <li class="cars">"Car 3"</li>
    <li class="cars">"Car 4"</li>
  </ul>
</div>

我希望使用mechanize从每个列表项中删除文本并将其打印出来。我试过了 puts page.at('.cars').text.strip但它只获得第一项。我也试过了

page.links.each do |x|
  puts x.at('.cars').text.strip

end 

但我收到错误undefined method 'at' for #<Mechanize::Page::Link:0x007fe7ea847810>

1 个答案:

答案 0 :(得分:0)

那里没有链接。链接是a个元素,可以转换为特殊的Mechanize对象。 你想要这样的东西:

page.search('li.cars').text # the text of all the li's mashed together as a string

page.search('li.cars').map{|x| x.text} # the text of each `li` as an array of strings