首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NoMethodError: ruby gem机械化未定义的方法'q=‘

NoMethodError: ruby gem机械化未定义的方法'q=‘
EN

Stack Overflow用户
提问于 2013-06-10 07:40:51
回答 3查看 898关注 0票数 1

我正在尝试为亚马逊建立一个网页抓取程序,但我在第一步就被绊倒了。我写了这样的代码,只是为了开始探索并访问Amazon和prettypage,这样我就知道如何继续:

代码语言:javascript
复制
require 'rubygems'
require 'mechanize'

agent = Mechanize.new

page = agent.get('http://www.amazon.com/')

page_form = page.form('site-search')

page_form.q = 'Intermediate Microeconomics'

page = agent.submit(page_form, page_form.buttons.first)

pp page

我一直收到这个错误信息:

代码语言:javascript
复制
/Users/samsunknight/.rvm/gems/ruby-2.0.0-p195/gems/mechanize-2.7.1/lib/mechanize/form.rb:217:in `method_missing': undefined method `q=' for #<Mechanize::Form:0x007f9a13012660> (NoMethodError)
        from webscraperattempt1.rb:7:in `<main>'

我从google.com的例子中改编了这段代码,它可以无缝地工作在agent.get('www.google.com')page.form('f')上,所以我认为问题出在page.form('site-search')上,但是当我为www.amazon.com搜索时,“pp page -search”和"f“出现在同一个地方。

我做错了什么?/我怎么才能修复它?

EN

回答 3

Stack Overflow用户

发布于 2013-06-10 07:50:54

试试这个吧

代码语言:javascript
复制
 page_form['q'] = 'Intermediate Microeconomics'
票数 0
EN

Stack Overflow用户

发布于 2013-06-10 07:53:09

q是谷歌表单上字段的名称。在亚马逊表单上,它是另一回事。

票数 0
EN

Stack Overflow用户

发布于 2013-06-10 07:56:25

尝试使用‘field-keys.’更改Q,如下所示:page_form['field-keywords'] = 'Intermediate Microeconomics'

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17015255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档