当我在Chrome中运行此操作并关闭JavaScript时,重定向仍然有效,因此我认为这不是JavaScript问题。
查看开发人员工具的网络选项卡,我看到提交时返回的第一个页面与原始URL(searchOW.aspx)相同,然后发出302重定向以发送到结果page(searchResultAward1.aspx)。
但是,当我运行我的Mechanize脚本时,它只停留在原始页面上,并且不遵循重定向。我对Mechanize的理解是它默认遵循这样的重定向。
require 'rubygems'
require 'mechanize'
agent = Mechanize.new { |agent|
agent.user_agent_alias = "Mac Safari"
}
agent.log = Logger.new('mechanize.log')
united_search_page_uri = 'http://www.united.com/web/en-US/apps/booking/flight/searchOW.aspx?CS=N'
agent.get(united_search_page_uri) do |page|
puts page.inspect
search_result = page.form_with(:name => 'aspnetForm') do |search|
search["ctl00$ContentInfo$SearchForm$Airports1$Origin$txtOrigin"] = "BOS"
search["ctl00$ContentInfo$SearchForm$Airports1$Destination$txtDestination"] = "SFO"
search["ctl00$ContentInfo$SearchForm$DateTimeCabin1$Depdate$txtDptDate"] = "3/15/2015"
search["ctl00$ContentInfo$SearchForm$TripTypes"] = 'rdoOW'
search["ctl00_ContentInfo_SearchForm_searchBy_rdosearchby3"] = "rdosearchby3"
end.submit
end
File.open("temp.html", 'w+') do |f|
f.puts search_result.parser.to_html
end
puts "----------------------------"
puts search_result.title
puts search_result.uri
puts search_result.response
puts search_result.code
有人对这里发生的事情有任何想法吗?