urlretrieve über proxy geht nicht, urlopen jedoch geht

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
jowel
User
Beiträge: 1
Registriert: Dienstag 18. Januar 2011, 17:43

Hallo,

bin noch ziemlich neu hier und habe folgendes Problem mit urllib.urlretrieve (Python 3.1) :

1. Nach doku proxy handler definiert:

Code: Alles auswählen

import urllib.request
authinfo = urllib.request.HTTPBasicAuthHandler()
proxy_support = urllib.request.ProxyHandler({"http" : "http://my-proxy.com:8080"})
opener = urllib.request.build_opener(proxy_support, authinfo, urllib.request.CacheFTPHandler)
urllib.request.install_opener(opener)
damit funktioniert urlopen() einwandfrei !

Code: Alles auswählen

f = urllib.request.urlopen('http://myURL.dnsalias.org/png/Data.png')
pic=f.read()
wenn ich allerdings per urlretrieve() dieselbe Datei holen will:

Code: Alles auswählen

urllib.request.urlretrieve('http://myURL.dnsalias.org/png/Data.png','C:/tmp/myData.png')
bekomme ich einen error:

Code: Alles auswählen

Traceback (most recent call last):
  File "<pyshell#38>", line 1, in <module>
    urllib.request.urlretrieve('http://myURL.dnsalias.org/png/Data.png','C:/TMP/myData.png')
  File "C:\Python31\lib\urllib\request.py", line 133, in urlretrieve
[...]
  File "C:\Python31\lib\http\client.py", line 713, in connect
    self.timeout)
  File "C:\Python31\lib\socket.py", line 320, in create_connection
    for res in getaddrinfo(host, port, 0, SOCK_STREAM):
IOError: [Errno socket error] [Errno 11004] getaddrinfo failed
dasselbe urlretrieve() funktioniert auf einem Rechner, der keinen Proxy braucht einwandfrei.

Hab ich hier was falsch verstanden, oder ist das ein Bug ?
Danke für jeden Hinweis,
Joachim

[Nachtrag]: kann mir jemand einen Tipp geben, wie man das mit Python 2.x löst, eine Datei durch einen Proxy nach local zu kopieren ?
Antworten