Pregunta

Si señalo Firefox en http://bitbucket.org/tortoisehg/stable/ wiki / Inicio / ReleaseNotes , llego a una página de HTML. Pero si intento esto en Python:

import urllib

site = 'http://bitbucket.org/tortoisehg/stable/wiki/Home/ReleaseNotes'
req = urllib.urlopen(site)
text = req.read()

Me sale el siguiente:

500 Error interno del servidor El servidor encontró un error interno o mala y no pudo completar su solicitud.

¿Qué estoy haciendo mal?

¿Fue útil?

Solución

No estás haciendo nada malo, bitbucket hace algo de detección de agente de usuario (para detectar clientes mercuriales, por ejemplo). Sólo cambiar el agente de usuario lo fija (si no tiene urllib como una subcadena).

Usted debe llenar un problema con respecto a esto: http://bitbucket.org/jespern/ bitbucket / temas / nueva /

Otros consejos

Lo estás haciendo nada malo, en la superficie, y, como la página de error dice que debe ponerse en contacto con los administradores del sitio, porque son los que tienen los registros del servidor que puede explicar lo que está pasando. Afortunadamente, administradores del sitio de Bitbucket son un grupo muy amigable!

Sin duda hay algo de cabecera o combinación de cabeceras que el navegador configurado de una manera, urllib establece otro camino, y un error en el servidor se hicieron cosquillas en el último caso. Es posible que desee ver exactamente lo que los encabezados se envían, por ejemplo, con Firebug en Firefox, y se reproducen los hasta aislar exactamente el fallo del servidor; más probable es que va a ser el agente de usuario o algún "aceptar" cabecera -ish que está cosquillas en ese error.

No creo que estés haciendo nada malo - parece que este servidor estaba justo al final? La secuencia de comandos funcionó bien para mí ( 'texto' contiene los mismos datos que la que se muestra en el navegador).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top