Primero que nada te recomiendo usar
requests.
Lo que pasa es lo siguiente:
El caso normal seria configurar el servidor web para que te arroje error 404 y una pagina personalizada.
Lamentablemente no toda la gente lo hace de esta manera entonces lo que hace es lo siguiente:
El usuario intenta acceder a una url que no existe, el servidor web detecta que no existe tal url y redirecciona a una pagina de error personalizada. El navegador web nunca supo que tal url no existía.
Para este tipo de casos un bot como este es prácticamente imposible detectar si la url existe o no.
Y si te pones a pensar es "normal" para una web que guarda archivos hacer esto, por que si no seria muy fácil un bot que detectara urls validas.
Aquí un ejemplo que funciona solamente para el dominio ma40.zxq.net y edicionesma40.com
Código Python:
Ver originalimport requests
url = "http://www.edicionesma40.com/inexistente.txt"
r = requests.get(url)
if r.status_code == 200 and r.url == url:
print "OK"
else:
print "ERROR"