From ff95aded8113dfe2c7696d320b7ad21069258f50 Mon Sep 17 00:00:00 2001 From: Ordanis Sanchez Date: Fri, 16 Mar 2018 12:02:03 -0400 Subject: [PATCH] Catch typeError on render, add maxretires exception --- requests_html.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/requests_html.py b/requests_html.py index 6203ba4..412216b 100644 --- a/requests_html.py +++ b/requests_html.py @@ -60,6 +60,12 @@ except AssertionError: raise RuntimeError('Requests-HTML requires Python 3.6+!') +class MaxRetries(Exception): + + def __init__(self, message): + self.message = message + + class BaseParser: """A basic HTML/Element Parser, for Humans. @@ -563,8 +569,13 @@ class HTML(BaseParser): try: content, result, page = loop.run_until_complete(_async_render(url=self.url, script=script, sleep=sleep, wait=wait, content=self.html, reload=reload, scrolldown=scrolldown, timeout=timeout)) - except TimeoutError: + except TypeError: pass + else: + break + + if not content: + raise MaxRetries("Unable to render the page. Try increasing timeout") html = HTML(url=self.url, html=content.encode(DEFAULT_ENCODING), default_encoding=DEFAULT_ENCODING) self.__dict__.update(html.__dict__)