Limitar recursiones
Cuando falla la autorización cloudflare, limitar el número de reintentos para evitar un posible bucle infinito de peticiones.
This commit is contained in:
@@ -68,7 +68,7 @@ load_cookies()
|
|||||||
|
|
||||||
|
|
||||||
def downloadpage(url, post=None, headers=None, timeout=None, follow_redirects=True, cookies=True, replace_headers=False,
|
def downloadpage(url, post=None, headers=None, timeout=None, follow_redirects=True, cookies=True, replace_headers=False,
|
||||||
add_referer=False, only_headers=False, bypass_cloudflare=True):
|
add_referer=False, only_headers=False, bypass_cloudflare=True, count_retries=0):
|
||||||
"""
|
"""
|
||||||
Abre una url y retorna los datos obtenidos
|
Abre una url y retorna los datos obtenidos
|
||||||
|
|
||||||
@@ -234,13 +234,14 @@ def downloadpage(url, post=None, headers=None, timeout=None, follow_redirects=Tr
|
|||||||
logger.info("No se ha podido descomprimir")
|
logger.info("No se ha podido descomprimir")
|
||||||
|
|
||||||
# Anti Cloudflare
|
# Anti Cloudflare
|
||||||
if bypass_cloudflare:
|
if bypass_cloudflare and count_retries < 5:
|
||||||
cf = Cloudflare(response)
|
cf = Cloudflare(response)
|
||||||
if cf.is_cloudflare:
|
if cf.is_cloudflare:
|
||||||
|
count_retries += 1
|
||||||
logger.info("cloudflare detectado, esperando %s segundos..." % cf.wait_time)
|
logger.info("cloudflare detectado, esperando %s segundos..." % cf.wait_time)
|
||||||
auth_url = cf.get_url()
|
auth_url = cf.get_url()
|
||||||
logger.info("Autorizando... url: %s" % auth_url)
|
logger.info("Autorizando... intento %d url: %s" % (count_retries, auth_url))
|
||||||
if downloadpage(auth_url, headers=request_headers, replace_headers=True, bypass_cloudflare=False).sucess:
|
if downloadpage(auth_url, headers=request_headers, replace_headers=True, count_retries=count_retries).sucess:
|
||||||
logger.info("Autorización correcta, descargando página")
|
logger.info("Autorización correcta, descargando página")
|
||||||
resp = downloadpage(url=response["url"], post=post, headers=headers, timeout=timeout,
|
resp = downloadpage(url=response["url"], post=post, headers=headers, timeout=timeout,
|
||||||
follow_redirects=follow_redirects,
|
follow_redirects=follow_redirects,
|
||||||
|
|||||||
Reference in New Issue
Block a user