code: def _get_response(self, url, **params):
          
          data = urlencode(params)
          url = "%s?%s" % (url, data)
          headers = {'User-Agent': self.get_random_agent()}
          request = Request(url, headers=headers, method='GET')
  
          def open_request(request, attempts, err=None):
              if attempts > self.request_attempts:
                  raise
              attempts += 1
              try:
                  with urlopen(request, timeout=self.timeout) as response:
                      return response.read()
              except HTTPError as err:
                  if err.getcode() < 500:
                      raise
                  print("HTTPError occurred while trying to request the url "
                        "%s. %s. Trying again in %s seconds..." % (url, err,
                                                  self.seconds_between_attempts))
                  time.sleep(self.seconds_between_attempts)
                  return open_request(request, attempts, err)
  
          attempts = 0
          self.last_response = open_request(request, attempts)
          return self.last_response
docs: Giving a service path and optional specific arguments, returns
          the response string.