使用Ruby Mechanize进行302重定向

时间:2015-01-09 22:47:21

标签: ruby web-scraping mechanize

当我在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

有人对这里发生的事情有任何想法吗?

0 个答案:

没有答案