Seite 1 von 1

Dynamisches Image Downloaden

Verfasst: Mittwoch 30. November 2005, 17:24
von Rockstar
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.

Verfasst: Mittwoch 30. November 2005, 17:29
von jens
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....

Verfasst: Mittwoch 30. November 2005, 17:43
von Rockstar
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.

Verfasst: Mittwoch 30. November 2005, 17:54
von Leonidas
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?

Verfasst: Mittwoch 30. November 2005, 18:04
von Rockstar
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.

Verfasst: Mittwoch 30. November 2005, 18:35
von Leonidas
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.

Verfasst: Mittwoch 30. November 2005, 19:41
von Joghurt
Fragt sich nur, wofür du das Captchabild brauchst... :?

Verfasst: Donnerstag 1. Dezember 2005, 15:38
von Rockstar
@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

Verfasst: Donnerstag 1. Dezember 2005, 15:46
von Joghurt
Du könntest auch direkt das TOC Protokoll nutzen: http://www.jamwt.com/Py-TOC/

Verfasst: Mittwoch 7. Dezember 2005, 01:46
von Rockstar
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:

Verfasst: Mittwoch 7. Dezember 2005, 06:18
von rayo
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()