title: urllib2.urlopen() vs urllib.urlopen() - urllib2 throws 404 while urllib works! WHY?
body: <pre><code>import urllib
  
  print urllib.urlopen('http://www.reefgeek.com/equipment/Controllers_&amp;_Monitors/Neptune_Systems_AquaController/Apex_Controller_&amp;_Accessories/').read()
  </code></pre>
  
  <p>The above script works and returns the expected results while:</p>
  
  <pre><code>import urllib2
  
  print urllib2.urlopen('http://www.reefgeek.com/equipment/Controllers_&amp;_Monitors/Neptune_Systems_AquaController/Apex_Controller_&amp;_Accessories/').read()
  </code></pre>
  
  <p>throws the following error:</p>
  
  <pre><code>Traceback (most recent call last):
    File "&lt;stdin&gt;", line 1, in &lt;module&gt;
    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
  </code></pre>
  
  <p>Does anyone know why this is? I'm running this from laptop on my home network with no proxy settings - just straight from my laptop to the router then to the www.</p>