request.get (url) devuelve contenido vacío

Estoy tratando de resolver esto, pero no tuve suerte:

import requests r = requests.get('http://example.com/m7ppct4', allow_redirects=True) 

r.status_code devuelve 200 , y r.content devuelve '' .

r.headers devuelve el siguiente diccionario:

 {'content-length': '0', 'content-language': 'en-US', 'x-powered-by': 'Servlet/3.0', 'set-cookie': '__cfduid=d4b3d47d43189ac72be14b1d2a2bed98a1408989649815; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.azdoa.gov; HttpOnly, LWJSESSIONID=0000SESSIONMANAGEMENTAFFINI:18h1v85u3; Path=/; HttpOnly, NSC_batubufkpctWTTTM=ffffffff09f39f1545525d5f4f58455e445a4a42378b;expires=Mon, 25-Aug-2014 18:02:49 GMT;path=/;secure;httponly', 'expires': 'Thu, 01 Dec 1994 16:00:00 GMT', 'server': 'cloudflare-nginx', 'connection': 'keep-alive', 'x-ua-compatible': 'IE=EmulateIE9', 'cache-control': 'no-cache="set-cookie, set-cookie2"', 'date': 'Mon, 25 Aug 2014 18:00:49 GMT', 'cf-ray': '15f9b0ff50cf0d6d-LAX', 'content-type': 'application/octet-stream'} 

Cuando abro la página en un navegador, claramente obtengo contenido.

¿Alguna idea sobre cómo puedo proceder a la depuración de esto? Me gustaría obtener el contenido de la página con una llamada a requests.get() .

Debes enviar cualquier agente de usuario:

 import requests r = requests.get('http://example.com/m7ppct4', headers={'User-Agent':'test'}) 

Parece que el sitio web vinculado por tinyurl (azstatejobs) filtra las solicitudes según los agentes de usuario. Falsificar el agente de usuario de Chrome funcionó para mí:

 import requests url = 'http://tinyurl.com/m7ppct4' user_agent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36' headers = {'User-Agent': user_agent} r = requests.get(url, headers=headers) 

( allow_redirect es verdadero por defecto)

Es posible que desee probar diferentes agentes de usuario y ver qué hace que ese sitio web no sea como el agente de usuario de python.

 import requests import json import pprint r = requests.get('URL') pprint.pprint(json.loads(r.content))