Cómo Python solicita seguir la URL como mi navegador

He notado que la biblioteca de solicitudes para Python no sigue ciertas redirecciones de URL como mi navegador.

Por ejemplo, cuando hago:

response = requests.get('http://www.bbmt.org/', verify=False, allow_redirects=True) 

La dirección URL final es https://secure.jbs.elsevierhealth.com/action/consumeSsoCookie?redirectUri=http%3A%2F%2Fwww.bbmt.org%2Faction%2FconsumezaredPacios de las personas de la empresaAccesiónActividades % 3FMAID %3JJ3 % 252q 26JSESSIONID% 3DaaaorUqRLHgAe4WCenKv% 26SERVER% 3DWZ6myaEXBLEt1UgI9cIkvA% 253D% 253D% 26ORIGIN% 3D470200154% 26RD% 3DRD & acw = & utt =

Sin embargo, en mi navegador, finalmente soy redirigido a http://www.bbmt.org/ .

¿Hay alguna manera de que las solicitudes se comporten como mi navegador en estos escenarios?

La redirección dentro de https://secure.jbs.elsevierhealth.com es una redirección de javascript.
Puedes verlo dentro del código fuente:

 window.location.href = "http://www.bbmt.org/action/consumeSharedSessionAction?SERVER=WZ6myaEXBLHj3ZzqSv9HPw%3D%3D&MAID=IBS8Eq6B1iRWhf2ywTW5pg%3D%3D&JSESSIONID=aaa8eY-zM394XcPptT_Kv&ORIGIN=670572791&RD=RD"; 

Deberá ejecutar javascript para hacer este redireccionamiento (y esto es algo que las solicitudes no hacen).

Si necesita una solución para este redireccionamiento específico, puede analizar el contenido de la respuesta (en python) y tomar esa URL específica y usarla para crear una nueva solicitud.

Si necesita una solución general, necesitará usar un navegador sin cabeza para hacer eso. Puedes encontrar más información en esta pregunta .