URLs and ampersands

Gabriel Genellina gagsl-py2 at yahoo.com.ar
Tue Aug 5 04:16:46 CEST 2008

En Mon, 04 Aug 2008 20:43:45 -0300, Steven D'Aprano  
<steve at REMOVE-THIS-cybersource.com.au> escribi�:

> I'm using urllib.urlretrieve() to download HTML pages, and I've hit a
> snag with URLs containing ampersands:
> http://www.example.com/parrot.php?x=1&y=2
> Somewhere in the process, urls like the above are escaped to:
> http://www.example.com/parrot.php?x=1&amp;y=2
> which naturally fails to exist.
> I could just do a string replace, but is there a "right" way to escape
> and unescape URLs? I've looked through the standard lib, but I can't find
> anything helpful.

This works fine for me:

py> import urllib
py> fn =  
py> open(fn,"rb").read()

So it's not urlretrieve escaping the url, but something else in your  

Gabriel Genellina

More information about the Python-list mailing list