import urllib
print urllib.urlopen('http://www.reefgeek.com/equipment/Controllers_&_Monitors/Neptune_Systems_AquaController/Apex_Controller_&_Accessories/').read()
Le script ci-dessus fonctionne et renvoie les résultats attendus tout:urllib2.urlopen() vs urllib.urlopen() - urllib2 lance 404 alors que urllib fonctionne! POURQUOI?
import urllib2
print urllib2.urlopen('http://www.reefgeek.com/equipment/Controllers_&_Monitors/Neptune_Systems_AquaController/Apex_Controller_&_Accessories/').read()
jette l'erreur suivante:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.5/urllib2.py", line 124, in urlopen
return _opener.open(url, data)
File "/usr/lib/python2.5/urllib2.py", line 387, in open
response = meth(req, response)
File "/usr/lib/python2.5/urllib2.py", line 498, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/lib/python2.5/urllib2.py", line 425, in error
return self._call_chain(*args)
File "/usr/lib/python2.5/urllib2.py", line 360, in _call_chain
result = func(*args)
File "/usr/lib/python2.5/urllib2.py", line 506, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 404: Not Found
Est-ce que quelqu'un sait pourquoi est-ce? Je cours ceci de l'ordinateur portable sur mon réseau domestique sans paramètres de proxy - juste directement de mon ordinateur portable au routeur puis au www.
qui est bon de savoir - par curiosité, quand je tape cette URL dans mon navigateur, cela fonctionne aussi. Est-ce que cela signifie que le navigateur reçoit également un 404 mais affiche simplement le contenu comme urllib? –
@Jerry Oui, c'est ce que cela signifie. Vous pouvez le vérifier avec Firebug ou Safari/Chrome Web Inspector. –
J'ai un firebug et je l'ai vérifié, mais je n'ai rien vu qui indique une 404 - y a-t-il quelque chose de spécial à faire? Par curiosité morbide, pourquoi les navigateurs tolèrent-ils de si mauvaises normes? Pourquoi ne pas simplement indiquer qu'il n'a pas pu trouver le fichier? Est-ce une sorte d'astuce sur le site qu'il utilise pour contrecarrer les bots - renvoyer un 404 avec du contenu sachant que le navigateur affichera le contenu et que la plupart des bots iront de l'avant? –