0

機械化初心者です。「TAICHI 21」という検索語でフォームを検索しようとしていますが、機能していないようです。このページはhttp://www.asus.com/Search/にあります。

これは私の間違いですか、それともフォームがボットを検出しているのでしょうか?

require 'nokogiri'
require 'mechanize'

agent = Mechanize.new

#User Agent masking
agent.user_agent_alias = 'Windows Mozilla'

#This handles the url
page = agent.get('http://www.asus.com/Search/')
pp page

#Lock onto the search box
asus_form = page.form('aspnetForm')

#Prepare a search for our form
asus_form.q = 'TAICHI 21'

#Submit our form
button = asus_form.button_with(:value => "Button1")
page = agent.submit(asus_form, button)

#Output our Pretty Print to text file
pp page
File.open("results.txt","w") do |f|
  PP.pp(page,f)
end
4

1 に答える 1

0

結果を詳しく調べたところ、その中にあなたのリンクが見つかりました。テスト中にコードの一部を変更しましたが、実際には何も変更されていないと思います。最後の行はリンクを見つけます。

agent = Mechanize.new

#User Agent masking
agent.user_agent_alias = 'Windows Mozilla'

#This handles the url
search = 'TAICHI 21'
page = agent.get("http://www.asus.com/Search/?SearchKey=#{search}")

#Output our Pretty Print to text file
File.open("results.txt","w") do |f|
  PP.pp(page.links.find_all{|l| l.text =~ /#{search}/i},f)
end
于 2013-01-29T11:59:58.057 に答える