urllib2 Problema de solicitud
Frecuentes
Visto 197 equipos
0
estoy tratando de abrir una página usando urllib2
req = urllib2.Request("http://1033kissfm.com",
headers={'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/20100101 Firefox/11.0'})
response = urllib2.urlopen(req)
rstPage = response.read()
y la respuesta es
<html>
<head><title>400 Bad Request</title></head>
<body bgcolor="white">
<center><h1>400 Bad Request</h1></center>
<hr><center>nginx/1.0.3</center>
</body>
</html>
pero cuando abro esta url en el navegador funciona bien, esta es la url
http://1033kissfm.com
en el navegador se redirige a
http://www.1033kissfm.com/pages/main
.
1 Respuestas
0
Resolví el problema ya que creo que la biblioteca no brinda ningún soporte para manejar la redirección. este código ayudará a encontrar redireccionamientos para obtener la respuesta adecuada
def get_hops(url):
redirect_re = re.compile('<meta[^>]*?url=(.*?)["\']', re.IGNORECASE)
hops = []
while url:
if url not in hops:
hops.insert(0, url)
response = urllib2.urlopen(url)
if response.geturl() != url:
hops.insert(0, response.geturl())
# check for redirect meta tag
match = redirect_re.search(response.read())
if match:
url = urlparse.urljoin(url, match.groups()[0].strip())
else:
url = None
return hops
Respondido 29 Jul 12, 13:07
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas python url request urllib2 or haz tu propia pregunta.
Este es un problema específico del sitio web, no un problema de Python. Es probable que el sitio busque encabezados u otra información como prueba de que está utilizando un navegador web, no un script. - Martijn Pieters
Como tal, su pregunta está demasiado localizada para Stack Overflow; una respuesta solo lo ayudará a usted, a nadie más, ya que no se puede generalizar. - Martijn Pieters
es un problema de python si es una mala solicitud, ¿por qué se abre en el navegador web? - akhter wahab
Tendría el mismo problema con Perl, C o Java. Es un problema con el sitio web, no con la biblioteca python urllib2. - Martijn Pieters
Estoy seguro de que no es un problema de la biblioteca ni estoy aquí para probarlo, pero estoy seguro de que no sé algo que pueda hacer que se ejecute a través de la biblioteca de Python. akhter wahab