示例#1
0
    def request(self, *args, **kwargs):
        # set default referer - without this ČSFD can return an infinite loop
        # of HTTP 302 redirects
        headers = kwargs.get('headers', {})
        headers['Referer'] = self.default_referer
        kwargs['headers'] = headers

        try:
            self.wait()
            return super(CsfdSession, self).request(*args, **kwargs)

        except http.TooManyRedirects:
            log.debug('HTTP: Too many redirects. Retrying.')
            return self.request(*args, **kwargs)

        except http.HTTPError as e:
            if e.response.status_code in (502, 403):
                log.debug('HTTP: 502 or 403 status code. Retrying.')
                return self.request(*args, **kwargs)
            raise
示例#2
0
 def request(self, *args, **kwargs):
     try:
         return super(SynopsitvSession, self).request(*args, **kwargs)
     except http.SSLError:
         log.debug('HTTP: SSL error. Retrying.')
         return self.request(*args, **kwargs)
示例#3
0
 def request(self, *args, **kwargs):
     try:
         return super(SynopsitvSession, self).request(*args, **kwargs)
     except http.SSLError:
         log.debug('HTTP: SSL error. Retrying.')
         return self.request(*args, **kwargs)
示例#4
0
 def wait(self):
     seconds = random.randrange(1, 5, 1)
     log.debug('HTTP: Waiting for %d seconds.', seconds)
     time.sleep(seconds)