почему механизация не ищет эту форму?

I am new to Mechanize. I am trying to search a form with the search term "TAICHI 21" but it does not appear to be working. The page is at 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
0
nl ja de
да, я заметил, что он не появляется, когда я отображаю страницу в браузере, хотя
добавлено автор Ninja2k, источник
Нашел это в коде Javascript, я думаю, что это может быть анти-бот-код. $ ("# searchinput"). keypress (function (event) {if (event.keyCode == 13) {$ ("# search-btn"). click ();/* var keyword = $ ("# searchinput" ) .val (); if (isApplicationPathSite ()) window.location.href = '/' + getWebsite() + '/ Поиск/Поиск? SearchKey =' + encodeURI (ключевое слово); else window.location.href = '/ Поиск/поиск? SearchKey = '+ encodeURI (ключевое слово); return false; * /}});
добавлено автор Ninja2k, источник
Если я посмотрю ссылки, перечисленные для вашей страницы , есть один с текстом «Я подтверждаю, пожалуйста, отвези меня туда».
добавлено автор Huluk, источник

1 ответы

Я подробно рассмотрел результаты, и я нашел вашу ссылку. Во время моего теста я изменил некоторые вещи в коде, но я считаю, что это ничего не меняет. Последняя строка находит вашу ссылку.

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
0
добавлено
Это хорошее решение, теперь нужно будет найти способ сделать это с помощью массива, добавит это как новый вопрос через минуту.
добавлено автор Ninja2k, источник
pro.ruby
pro.ruby
1 181 участник(ов)

Язык программирования Ruby Additional docs: https://rubyreferences.github.io/rubyref/ Invite: https://telegram.me/joinchat/Be4rsT2NuB3CyJaF26j1kA Кто хочет компилировать: @crystal_ru (его синтаксис основан на Ruby) Участник @proDOT

Ruby, Rails, Hanami | dry-rb
Ruby, Rails, Hanami | dry-rb
1 180 участник(ов)

https://telegram.me/rubyjob - Ruby Job По вопросам - @eugene_shved

Ruby School .us
Ruby School .us
1 045 участник(ов)

Чат-болталка для учеников руби-школы и не только. Правила: https://telegra.ph/Pravila-chata-Rubi-shkoly-03-13

Random Ruby Chat
Random Ruby Chat
589 участник(ов)

Правила публикации вакансий: https://t.me/codenamecrud/60865

Rubyata
Rubyata
333 участник(ов)

Коммюнити Ruby и Ruby On Rails Флуд не приветствуются. Вакансии можно публиковать только и ТОЛЬКО по пятницам с хештегом #вакансия.

Ruby Talks
Ruby Talks
236 участник(ов)

Национальная Флеймотека

RubyRush
RubyRush
189 участник(ов)

rubyrush.ru программирование для самых новичков