Dynamisches Image Downloaden

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Rockstar
User
Beiträge: 15
Registriert: Samstag 12. November 2005, 17:31
Kontaktdaten:

Hallo.
Ich versuche ein über PHP dynamisch erzeugtes Bild zu öffnen und auf dem PC zu speichern.
Allerdings Wird das gespeicherte Bild extrem verpixelt.
So das nichts mehr drauf zu erkennen ist.

Hier mal der Code:

Code: Alles auswählen

import urllib
url = "http://www.icq.com//img/aa_img.php?gnm=C2933CAA4ECC37174A481060C4D68EBEE98F4CAE092A0304D029919D298A5F08"
savepath = "D:\\test.jpg"
image = urllip.urlopen(url)
temp = image.read()
image.close()

f = open(savepath,"w")
f.write(temp)
f.close()
Hat jemand ne Idee ob man das irgendwie anders machen kann?
Mit urllib.urlopener() und retrieve() bekomm ich das Bild gar nicht erst.
Weiss nicht mehr genau wie die Funktione war hat aber nur mit statischen Bildern funktioniert.

Ich hoffe jemand kann mir helfen.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Das es extrem verpixelt ist, liegt sicherlicht nicht an deinem Python-Skript... Lad das Bild dochmal direk mit einem Browser... IMHO wird es schon verpixelt erzeugt....

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Rockstar
User
Beiträge: 15
Registriert: Samstag 12. November 2005, 17:31
Kontaktdaten:

jens hat geschrieben:Lad das Bild dochmal direk mit einem Browser... IMHO wird es schon verpixelt erzeugt....
Das hab ich natürlich schon getestet.
Im Broser siehts vollkommen normal aus.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Scheint ein Bild zu sein, welches gegen Crawler gerichtet ist. Versuch mal den Useragent zu ändern, dass sich dein Programm als Firefox ausgibt, vielleicht hilft das was?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Rockstar
User
Beiträge: 15
Registriert: Samstag 12. November 2005, 17:31
Kontaktdaten:

Damit hat ich gestern schon irgendwie rumexperimentiert aber null Erfolg gehabt.
Wahrscheinlich mangels wissen. :?

hab hier nur folgenden Codeschnipsel.

Code: Alles auswählen

class AppURLopener(urllib.FancyURLopener):
    #Definition de l'user-agent 
    version = "'User-agent' : 'Mozilla/5.0 (Windows; U; Windows NT 5.1; fr-FR; rv:1.7.12) Gecko/20050919 Firefox/1.0.7'" #Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'"
    urllib._urlopener = AppURLopener() #utile pour le User-agent
Nur was ich damit anfangen soll (oder kann) is mir n Rätsel.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Für sowas nimmst du besser das urllib2.Request-Objekt. Damit setzt du dann die Haeder (also User-agent) und greifst auf das Bild per urllib2 zu.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Fragt sich nur, wofür du das Captchabild brauchst... :?
Rockstar
User
Beiträge: 15
Registriert: Samstag 12. November 2005, 17:31
Kontaktdaten:

@Leondrias: Danke. Ich schau mal ob ich das hin bekomm.
@Joghurt: Ich wusste das die Frage kommen würde.

Ich bastel grad ein Script um über XBox MediaCenter Seine ICQ Kontakte zu überprüfen und evtl auch ne Pager Nachricht zu schreiben.
Dazu benutz ich halt das Online Pagerformular von ICQ und dazu brauch ich dieses Bild.
Nix schlimmes also. :D
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Du könntest auch direkt das TOC Protokoll nutzen: http://www.jamwt.com/Py-TOC/
Rockstar
User
Beiträge: 15
Registriert: Samstag 12. November 2005, 17:31
Kontaktdaten:

Joghurt hat geschrieben:Du könntest auch direkt das TOC Protokoll nutzen: http://www.jamwt.com/Py-TOC/
Äähm... Danke für den Tip.
Aber damit bin ich ja komplet überfordert :?
Ich weiss ja das ICQ und AOL irgendwie zusammenhängen aber was fang ich jetzt genau damit an?
Sorry das ich so unwissen bin. :roll:
rayo
User
Beiträge: 773
Registriert: Mittwoch 5. November 2003, 18:06
Wohnort: Schweiz
Kontaktdaten:

Hi

Mach beim Bild noch 'wb' anstatt 'w', kommt halt auf das OS an aber könnte auch noch helfen.

Code: Alles auswählen

f = open(savepath,"wb") 
f.write(temp)
f.close()
Antworten