import urllib
print urllib.urlopen('http://www.reefgeek.com/equipment/Controllers_&_Monitors/Neptune_Systems_AquaController/Apex_Controller_&_Accessories/').read()
Lo script precedente funziona e restituisce i risultati attesi, mentre:urllib2.urlopen() vs urllib.urlopen() - urllib2 genera 404 mentre urllib funziona! PERCHÉ?
import urllib2
print urllib2.urlopen('http://www.reefgeek.com/equipment/Controllers_&_Monitors/Neptune_Systems_AquaController/Apex_Controller_&_Accessories/').read()
tiri il seguente errore:
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
Qualcuno sa perché questo è? Sto eseguendo questo dal portatile sulla mia rete domestica senza impostazioni proxy - direttamente dal mio portatile al router, poi al www.
questo è bello sapere - per curiosità, quando digito questo URL nel mio browser, funziona anche. Questo significa che il browser sta anche ricevendo un 404 ma sta semplicemente visualizzando il contenuto come fa urllib? –
@Jerry Sì, questo è ciò che significa. Puoi verificarlo con Firebug o Safari/Chrome's Web Inspector. –
Ho firebug e l'ho controllato, ma non ho visto nulla che indicasse un 404 - c'è qualcosa di speciale che devi fare? Per curiosità morbosa, perché i browser tollerano standard così bassi? Perché non indicare solo che non è stato possibile trovare il file? È questo un qualche tipo di trucco il sito che usa per bloccare i bot - restituire un 404 con contenuto sapendo che il browser mostrerà il contenuto e la maggior parte dei bot si muoverà? –