使用Mechanize逐行提取文本

时间:2017-12-13 16:54:55

标签: ruby mechanize

我试图从页面中提取一些数据。

我的页面是:

<div class="row">
    <div class="title">
        <a href="#">Orange</a>
    </div>
    <div class="color">
        <a href="#">orange</a>
    </div>
</div>

<div class="row">
    <div class="title">
        <a href="#">Banana</a>
    </div>
    <div class="color">
        <a href="#">yellow</a>
    </div>
</div>

我想逐行提取titlecolor

这是我的剧本:

require 'mechanize'

mechanize = Mechanize.new
page = mechanize.get("#{url}")

page.search("div.row").each do |row|
    title = row.at("div.title a")
    email = row.at("div.color a")
    puts title
    puts email
end

它有效但结果是这样的:

<a href="#">Orange</a>
<a href="#">orange</a>
<a href="#">Banana</a>
<a href="#">yellow</a>

我想只提取文字。 我尝试使用title = row.at("div.title a").text,但我遇到了错误undefined method 'text' for nil:NilClass (NoMethodError)

有什么想法吗? THX

0 个答案:

没有答案