¿Cómo obtener el código de los encabezados a través de urllib?En Python, ¿cómo utilizo urllib para ver si un sitio web es 404 o 200?
Respuesta
El método getcode() (Agregado en python2.6) devuelve el código de estado HTTP que se envió con la respuesta, o None si la URL no es una URL HTTP.
>>> a=urllib.urlopen('http://www.google.com/asdfsf')
>>> a.getcode()
404
>>> a=urllib.urlopen('http://www.google.com/')
>>> a.getcode()
200
Puede utilizar urllib2 así:
import urllib2
req = urllib2.Request('http://www.python.org/fish.html')
try:
resp = urllib2.urlopen(req)
except urllib2.HTTPError as e:
if e.code == 404:
# do something...
else:
# ...
except urllib2.URLError as e:
# Not an HTTP-specific error (e.g. connection refused)
# ...
else:
# 200
body = resp.read()
Tenga en cuenta que HTTPError
es una subclase de URLError
que almacena el código de estado HTTP.
¿Es el segundo 'else' un error? –
Nope: http://stackoverflow.com/questions/855759/python-try-else –
import urllib2
try:
fileHandle = urllib2.urlopen('http://www.python.org/fish.html')
data = fileHandle.read()
fileHandle.close()
except urllib2.URLError, e:
print 'you got an error with the code', e
TIMEX está interesado en obtener el código de solicitud http (200, 404, 500, etc.), no es un error genérico lanzado por urllib2. –
Para Python 3:
import urllib.request, urllib.error
url = 'http://www.google.com/asdfsf'
try:
conn = urllib.request.urlopen(url)
except urllib.error.HTTPError as e:
# Return code error (e.g. 404, 501, ...)
# ...
print('HTTPError: {}'.format(e.code))
except urllib.error.URLError as e:
# Not an HTTP-specific error (e.g. connection refused)
# ...
print('URLError: {}'.format(e.reason))
else:
# 200
# ...
print('good')
Para [URLError] (https://docs.python.org/3.5/library/urllib.error.html) 'print (e.reason)' podría ser utilizado. – Liliane
- 1. ¿Cómo puedo abrir un sitio web con urllib vía proxy en Python?
- 2. ¿Debería este resultado Json devolver un 404 o 200?
- 3. Python y urllib
- 4. cómo ver un sitio en localhost
- 5. ¿Cómo puedo iniciar sesión en un sitio web con Python?
- 6. Python URLLib/URLLib2 POST
- 7. El sitio web devuelve 302 en lugar de 200
- 8. ¿Cómo sabe IIS si está sirviendo un sitio web o un proyecto de aplicación web?
- 9. Posible ver el código PHP de un sitio web?
- 10. curl y ping: ¿cómo verificar si un sitio web está activo o inactivo?
- 11. Python CMS para mi propio sitio web?
- 12. Escribiendo un sitio web en Python
- 13. ¿Cómo puedo iniciar sesión en un sitio web usando Python?
- 14. gevent urllib es lento
- 15. Python urllib vs httplib?
- 16. Leyendo un sitio web con asyncore
- 17. Cómo incrustar un intérprete de Python en un sitio web
- 18. Ver sitio web completo, no versión móvil en iPhone
- 19. ASP.NET personalizado 404 Devolución 200 OK En lugar de 404 No encontrado
- 20. Django custom handler404 muestra 404 pero da encabezado 200
- 21. Cómo escribir un cheque en python para ver si el archivo es válido UTF-8?
- 22. Python: urllib/urllib2/httplib confusion
- 23. ¿Es web2py adecuado para un gran sitio web público?
- 24. cómo ver si un color rgb es demasiado claro
- 25. Probador web automático para enlaces 404?
- 26. ¿Cómo ver si existe un directorio o no en Perl?
- 27. urllib2 devuelve 404 para un sitio web que se muestra bien en los navegadores
- 28. Python 2 vs. Python 3 - formatos urllib
- 29. Cómo comprobar en ASP.NET MVC Ver si el sitio se está ejecutando en localhost o 127.0.0.1
- 30. cómo fusionar 200 archivos csv en Python
Nota que getCode se añadió() en Python 2.6. – Mark
@Mark, buen punto –
En algunas versiones anteriores a la 2.6, a.code funciona. – user183037