Я использую механизму драгоценных камней Ruby, чтобы очистить некоторые HTML ... Когда я загружаю свою страницу и отображаю необходимые результаты, страница выглядит нормально.После перезагрузки я получаю эту ошибку при выполнении "search_results = @ agent.submit (search_form)":
undefined method `<=>' for {emptyelem <input name="hl" value="en" type="hidden">}:Hpricot::Elem
Перед тем, как публиковать какой-либо код, просто звонит ли этот звонок?Спасибо.
Код:
start = Time.now
# initial set up
@agent = Mechanize.new
Mechanize.html_parser = Hpricot
page = @agent.get("http://www.google.com/")
search_form = page.forms.first
# conduct initial search
@search_term = search_form.q = params[:search].to_s
search_results = @agent.submit(search_form)
# helper variables
search_qs = ""; @page_number = 1; i = 0; @flag = false;
# get the query string structure
search_results.links.each { |li| search_qs = li.href if li.href.match(/.*search\?q=.*start=.*/) }
# search through all paginated pages
while (i < 500)
search_qs = search_qs.gsub(/start=\d+/,"start=#{i}")
@search_url = "http://google.com#{search_qs}"
search_results = @agent.get(@search_url)
search_results.links.each { |li| @flag = true if li.text.match("All Bout Texas Tailgating") }
break if @flag
i+=10; @page_number+=1
end
@execution_time = Time.now-start
render :layout => false
ПРОСМОТР:
<h2>Query results for "<%= @search_term %>" on Google</h2>
<% if @flag %>
<p>What page is this keyword found: <b><%= @page_number %></b></p>
<p><%= link_to "Click to see page", "#{@search_url}", {:target => "_blank"} %></p>
<p>How long did this query take to run?: <%= @execution_time %> seconds</p>
<% else %>
<p>Keyword not found in Google search reults</p>
<% end %>
STACK TRACE:
NoMethodError (undefined method `<=>' for {emptyelem <input name="hl" value="en" type="hidden">}:Hpricot::Elem):
mechanize (1.0.0) lib/mechanize/form/field.rb:30:in `<=>'
mechanize (1.0.0) lib/mechanize/form.rb:171:in `sort'
mechanize (1.0.0) lib/mechanize/form.rb:171:in `build_query'
mechanize (1.0.0) lib/mechanize.rb:373:in `submit'
app/controllers/admin/importer_controller.rb:24:in `check_page_rank'
/opt/local/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
/opt/local/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
/opt/local/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
/opt/local/lib/ruby/1.8/webrick/server.rb:162:in `start'
/opt/local/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
/opt/local/lib/ruby/1.8/webrick/server.rb:95:in `start'
/opt/local/lib/ruby/1.8/webrick/server.rb:92:in `each'
/opt/local/lib/ruby/1.8/webrick/server.rb:92:in `start'
/opt/local/lib/ruby/1.8/webrick/server.rb:23:in `start'
/opt/local/lib/ruby/1.8/webrick/server.rb:82:in `start'
Rendered rescues/_trace (98.4ms)
Rendered rescues/_request_and_response (1.2ms)
Rendering rescues/layout (internal_server_error)