1

Amazon 用の Web スクレイピング プログラムを構築しようとしていますが、最初のステップでつまずいてしまいます。私は次のようにコードを書きました.

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')思いますがpp page、www.amazon.com の場合、「サイト検索」がまったく同じに表示されます「f」がGoogleの場合と同じように配置します。

私は何を間違っていますか?/どうすれば修正できますか?

4

3 に答える 3

0

qは、Google フォームのフィールドの名前です。アマゾンのフォームでは、それは別のものです。

于 2013-06-09T23:53:08.670 に答える
0

次のように 'field-keywords' で q を変更してみてください: page_form['field-keywords'] = 'Intermediate Microeconomics'

于 2013-06-09T23:56:25.327 に答える
0

代わりにこれを試してください

 page_form['q'] = 'Intermediate Microeconomics'
于 2013-06-09T23:50:53.780 に答える