urlopen error (10060, 'Operation timed out')

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Crypted
User
Beiträge: 7
Registriert: Mittwoch 11. April 2007, 15:59

Sonntag 15. April 2007, 23:50

Hey Leute, ich versuche gerade ein Tool zu scripten,
dass aus einer BBCode "Datei" alle [IMG]'s auslesen und runterladen
soll. Klappt soweit gut nur. Aber grössere Bilder funktionieren anscheinend nicht?

Code: Alles auswählen

>>> urllib2.urlopen(http://img329.imageshack.us/img329/5903/gonnagetyou3nw0.jpg)
SyntaxError: invalid syntax
>>> urllib2.urlopen("http://img329.imageshack.us/img329/5903/gonnagetyou3nw0.jpg")
Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    urllib2.urlopen("http://img329.imageshack.us/img329/5903/gonnagetyou3nw0.jpg")
  File "E:\python\lib\urllib2.py", line 121, in urlopen
    return _opener.open(url, data)
  File "E:\python\lib\urllib2.py", line 374, in open
    response = self._open(req, data)
  File "E:\python\lib\urllib2.py", line 392, in _open
    '_open', req)
  File "E:\python\lib\urllib2.py", line 353, in _call_chain
    result = func(*args)
  File "E:\python\lib\urllib2.py", line 1101, in http_open
    return self.do_open(httplib.HTTPConnection, req)
  File "E:\python\lib\urllib2.py", line 1076, in do_open
    raise URLError(err)
URLError: <urlopen error (10060, 'Operation timed out')>
Ist dieses Timeout lokal in Python oder ist es der Webserver, der abbricht?

Gibt es bessere Varianten ein Bild herunterzuladen als:


Code: Alles auswählen

def download_f(fhandle,saveto):
    
    
    filedata=fhandle.read()
    fhandle_saveto=open(saveto,"wb")
    fhandle_saveto.write(filedata)
    fhandle_saveto.close()

download_f(urllib2.urlopen("http://bla.bla/bla.jpg"),"bla.jpg")
Danke fürs durchlesen, würde mich über eine Antwort freuen :D

lg,
Crypted

ps: Ich hoffe ich hab die richtige Kategorie gewählt^^ Ansonsten, sorry ;)
BlackJack

Montag 16. April 2007, 08:13

Ich würde mal sagen das ist der Webserver der sich dagegen schützt, dass jemand massenhaft automatisiert Bilder herunterlädt. Ich bin mir sicher das mag Imageshack nicht.
Crypted
User
Beiträge: 7
Registriert: Mittwoch 11. April 2007, 15:59

Montag 16. April 2007, 09:30

Das tut doch jeder Browser auch oder? (Jedenfalls wenn er nicht gecached hat)
Sollte man da irgendwie eine Browserkennung mitschicken?

Hab kurz gegoogelt, irgendwie mit FakeBrowser und so arbeiten? Denkt ihr da würde es besser funktionieren?

lg,
Crypted

EDIT:

Lässt sich so:

Code: Alles auswählen

req = urllib2.Request(url, None, {'User-agent': 'Hier den Useragent'})
            filehandle_url = urllib2.urlopen(req)
prima austricksen :D (Vlt. nich wenns mehr Bilder sind, aber bei der Anzahl die ich hab schon)
Antworten