class ScraperAPI::Client

Public Class Methods

new(api_key) click to toggle source
# File lib/scraper_api.rb, line 7
def initialize(api_key)
  @api_key = api_key
end

Public Instance Methods

account() click to toggle source
# File lib/scraper_api.rb, line 103
def account()
  uri = URI.parse("https://api.scraperapi.com/account")
  uri.query = URI.decode(URI.encode_www_form({:api_key => @api_key}))
  return Unirest.get(uri.to_s).body
end
get(url, headers: {}, country_code: nil, device_type: nil, premium: false, render: false, session_number: nil, autoparse: false, retry_n: 3, timeout: 60) click to toggle source

headers={},

country_code=None,
device_type=None,
premium=None,
render=None,
session_number=None,
autoparse=None,
retry=3,
timeout=60
# File lib/scraper_api.rb, line 22
def get(url,
        headers: {},
        country_code: nil,
        device_type: nil,
        premium: false,
        render: false,
        session_number: nil,
        autoparse: false,
        retry_n: 3,
        timeout: 60)


  makeRequestWithMethod(url,
                        @api_key,
                        "GET",
                        headers: headers,
                        country_code: country_code,
                        device_type: device_type,
                        premium: premium,
                        render: render,
                        session_number: session_number,
                        autoparse: autoparse,
                        retry_n: retry_n,
                        timeout: timeout)

end
post(url, headers: {}, country_code: nil, device_type: nil, premium: false, render: false, session_number: nil, autoparse: false, retry_n: 3, timeout: 60, body: nil) click to toggle source
# File lib/scraper_api.rb, line 49
def post(url,
         headers: {},
         country_code: nil,
         device_type: nil,
         premium: false,
         render: false,
         session_number: nil,
         autoparse: false,
         retry_n: 3,
         timeout: 60,
         body: nil)

  makeRequestWithMethod(url,
                        @api_key,
                        "POST",
                        headers: headers,
                        country_code: country_code,
                        device_type: device_type,
                        premium: premium,
                        render: render,
                        session_number: session_number,
                        autoparse: autoparse,
                        retry_n: retry_n,
                        timeout: timeout,
                        body: body)
end
put(url, headers: {}, country_code: nil, device_type: nil, premium: false, render: false, session_number: nil, autoparse: false, retry_n: 3, timeout: 60, body: nil) click to toggle source
# File lib/scraper_api.rb, line 76
def put(url,
        headers: {},
        country_code: nil,
        device_type: nil,
        premium: false,
        render: false,
        session_number: nil,
        autoparse: false,
        retry_n: 3,
        timeout: 60,
        body: nil)

  makeRequestWithMethod(url,
                        @api_key,
                        "PUT",
                        headers: headers,
                        country_code: country_code,
                        device_type: device_type,
                        premium: premium,
                        render: render,
                        session_number: session_number,
                        autoparse: autoparse,
                        retry_n: retry_n,
                        timeout: timeout,
                        body: body)
end

Private Instance Methods

makeRequestWithMethod(url, api_key, method, headers: {}, country_code: nil, device_type: nil, premium: false, render: false, session_number: nil, autoparse: false, retry_n: 3, timeout: 60, body: nil) click to toggle source
# File lib/scraper_api.rb, line 111
def makeRequestWithMethod(url,
                          api_key,
                          method,
                          headers: {},
                          country_code: nil,
                          device_type: nil,
                          premium: false,
                          render: false,
                          session_number: nil,
                          autoparse: false,
                          retry_n: 3,
                          timeout: 60,
                          body: nil)


  params = {
      :api_key => api_key,
      :country_code => country_code,
      :device_type => device_type,
      :premium => premium,
      :render => render,
      :session_number => session_number,
      :autoparse => autoparse,
      :keep_headers => !headers.empty?,
      :url => url,
      :scraper_sdk => "ruby"
  }

  begin
    retries ||= 0
  Unirest.timeout(timeout)

  scraperapi_basepath = "https://api.scraperapi.com/"
  uri = URI.parse(scraperapi_basepath)
  uri.query = URI.decode(URI.encode_www_form(params.compact!))

  if method == "GET"
    return Unirest.get(uri.to_s, headers:headers)
  end
  if method == "POST"
    return Unirest.post(uri.to_s, headers:headers, parameters: body)
  end
  if method == "PUT"
    return Unirest.put(uri.to_s, headers:headers, parameters: body)
  end

  rescue
    retry if (retries += 1) <= retry_n
  end

end