Is there any reason why urllib uses environment variables for proxy settings on Win32? Its quite unlikely they will be set up and there is a standard registry location for this information. I've added retrieval of registry settings to my copy of urllib and it seems to work OK athough I'm not running off CVS and I recall the winreg module has changed recently. Here is the code going just after the "if os.name == 'mac'" proxy handling. elif os.name == 'nt': def getproxies(): """Return a dictionary of scheme -> proxy server URL mappings. Win32 uses the registry to store proxies. """ proxies = {} try: import winreg internetSettings = winreg.OpenKey(winreg.HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings"); proxyEnable = winreg.QueryValueEx(internetSettings, "ProxyEnable")[0] if proxyEnable: # Returned as Unicode but problems occur if not converted to ASCII proxyServer = str(winreg.QueryValueEx(internetSettings, "ProxyServer")[0]) if ";" in proxyServer: # Individual per-protocol settings for p in string.split(proxyServer,";"): protocol, address = string.split(p, "=") proxies[protocol] = '%s://%s' % (protocol, address) else: # Use one setting for all protocols proxies['http'] = 'http://%s' % proxyServer proxies['ftp'] = 'ftp://%s' % proxyServer internetSettings.Close() except: # proxies already set up to be empty so nothing to do pass return proxies Neil
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4