class Mechanize
Public Instance Methods
phget(url, *args)
click to toggle source
# File lib/phantom_mechanize/ext/mechanize.rb, line 2 def phget url, *args args = args[0] || {} wait = args[:wait] || 10000 selector = args[:selector] || "" scroll = args[:scroll] ? 1 : 0 selector = [selector] if selector.is_a?(String) js = args[:js] || "" js = [js] if js.is_a?(String) pc = cookies.map{|c| [c.name, c.value, c.domain, c.path, c.httponly, c.secure, c.expires.to_i]}.to_json ph_args = ['--ssl-protocol=any', '--web-security=false'] ph_args << "--proxy=#{proxy_addr}:#{proxy_port}" if proxy_port && proxy_addr cmd = "phantomjs #{ph_args.join(' ')} \"#{PhantomMechanize::JS_FOLDER}/phget.js\" \"#{url}\" \"#{wait}\" \"#{selector.to_json.gsub('\"', '\\"')}\" \"#{pc.gsub('\"', '\\"')}\" \"#{user_agent.gsub('\"', '\\"')}\" \"#{js.to_json.gsub('\"', '\\"')}\" \"#{scroll.to_json}\"" response = %x[#{cmd}] raise 'bad response' if response == '' mcs, html = response.split '<<<phget_separator>>>' JSON.parse(mcs).each do |mc| cookie = Cookie.new Hash[mc.map{|k, v| [k.to_sym, v]}] cookie_jar << cookie end page = Mechanize::Page.new URI.parse(url), [], html, nil, self end