class Scraypa::VisitCapybaraPoltergeist
Public Class Methods
new(params={})
click to toggle source
Calls superclass method
# File lib/scraypa/visit/visit_capabara_poltergeist.rb, line 9 def initialize params={} super(params) @config = params[:config] @tor_proxy = params[:tor_proxy] @driver_resetter = params[:driver_resetter] @user_agent_retriever = params[:user_agent_retriever] setup_driver @current_user_agent = nil end
Public Instance Methods
execute(params={})
click to toggle source
# File lib/scraypa/visit/visit_capabara_poltergeist.rb, line 19 def execute params={} @config.tor && @tor_proxy ? visit_get_response_through_tor(params) : visit_get_response(params) end
Private Instance Methods
setup_billy_driver()
click to toggle source
# File lib/scraypa/visit/visit_capabara_poltergeist.rb, line 72 def setup_billy_driver Capybara.javascript_driver = @config.driver end
setup_driver()
click to toggle source
# File lib/scraypa/visit/visit_capabara_poltergeist.rb, line 51 def setup_driver case @config.driver when :poltergeist setup_poltergeist_driver when :poltergeist_billy setup_billy_driver else raise CapybaraDriverUnsupported, "Currently no support for capybara driver: #{@config.driver}" end end
setup_poltergeist_driver()
click to toggle source
# File lib/scraypa/visit/visit_capabara_poltergeist.rb, line 63 def setup_poltergeist_driver driver_name = (@config.driver.to_s + (@config.tor ? "tor#{@config.tor_options[:tor_port]}" : '')).to_sym Capybara.default_driver = driver_name Capybara.register_driver driver_name do |app| Capybara::Poltergeist::Driver.new(app, @config.driver_options || {}) end end
update_user_agent_if_changed()
click to toggle source
# File lib/scraypa/visit/visit_capabara_poltergeist.rb, line 40 def update_user_agent_if_changed if @user_agent_retriever new_user_agent = @user_agent_retriever.user_agent if @current_user_agent != new_user_agent @current_user_agent = new_user_agent Capybara.page.driver.add_headers( "User-Agent" => @current_user_agent) end end end
visit_get_response(params={})
click to toggle source
# File lib/scraypa/visit/visit_capabara_poltergeist.rb, line 33 def visit_get_response params={} update_user_agent_if_changed Capybara.visit params[:url] @driver_resetter.reset_if_nth_request if @driver_resetter Capybara.page end
visit_get_response_through_tor(params={})
click to toggle source
# File lib/scraypa/visit/visit_capabara_poltergeist.rb, line 27 def visit_get_response_through_tor params={} @tor_proxy.proxy do return visit_get_response params end end