我正在尝试为亚马逊建立一个网页抓取程序,但我在第一步就被绊倒了。我写了这样的代码,只是为了开始探索并访问Amazon和prettypage,这样我就知道如何继续:
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我一直收到这个错误信息:
/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“出现在同一个地方。
我做错了什么?/我怎么才能修复它?
发布于 2013-06-10 07:50:54
试试这个吧
page_form['q'] = 'Intermediate Microeconomics'发布于 2013-06-10 07:53:09
q是谷歌表单上字段的名称。在亚马逊表单上,它是另一回事。
发布于 2013-06-10 07:56:25
尝试使用‘field-keys.’更改Q,如下所示:page_form['field-keywords'] = 'Intermediate Microeconomics'
https://stackoverflow.com/questions/17015255
复制相似问题