【发布时间】:2014-10-01 20:42:11
【问题描述】:
我正在尝试浏览一系列带有 css 类标题的链接,然后单击这些链接,然后获取产品标题。但我不断收到错误undefined method each for #<Mechanize::Page::Link:0x007fbfe2524410> (NoMethodError)?我不明白做错了什么?
这是我的代码:
require 'mechanize'
file = File.new("outputscrape.txt", 'w')
agent = Mechanize.new { |agent|
agent.user_agent_alias = 'Windows Chrome'}
page = agent.get('http://www.amazon.com/s/ref=sr_nr_n_0?rh=n%3A283155%2Cn%3A%211000%2Cn%3A5%2Cn%3A15377001%2Cn%3A6133979011%2Cn%3A6133980011&bbn=6133979011&ie=UTF8&qid=1412193262&rnid=6133979011')
title_link = page.link_with(:dom_class => "title")
title_link.each do |link|
link.click
file.write(link.at('#productTitle').text.strip)
end
【问题讨论】:
-
title_link在.each块之前的值是多少? -
我正在尝试存储指向书名页面的链接,然后使用每个链接对其进行迭代,单击它们并取出书名。
-
在运行
title_link.each之前可以添加puts title_link。运行程序并告诉我返回了什么 -
我得到了指向书名的第一个链接的名称
-
基本上我想点击页面的所有链接并获取书籍的每个标题。