Python3-Urllib-Image-Retreval
Ich schreibe ein kleines Python-Skript, um Bilder über Google Bilder zu erfassen. Ich habe es geschafft, die Dinge so weit zu bringen, dass ich die URLs der gewünschten Bilder in einer praktischen Liste habe. Jetzt muss ich sie nur noch schnappen ...
Für jede Bild-URL mache ich Folgendes:
print("Retrieving:{0}".format(sFinalImageURL))
sExt = sFinalImageURL.split('.')[-1]
#u = urllib.request.urlopen(sFinalImageURL)
try:
u = urllib.request.urlopen(sFinalImageURL)
except:
print("error: cannot retrieve image")
continue
raw_data = u.read()
print("read {0} bytes".format(len(raw_data)))
u.close()
global sImagesFolder
try:
f = open("{0}/{1}_{2}.{3}".format(sImagesFolder,sImage,i,sExt),'wb')
f.write(raw_data)
f.close()
except:
print("couldn't write to {0}/{1}_{2}.{3}".format(sImagesFolder,sImage,i,sExt))
print()
Hier sind die Probleme, auf die ich stoße:
Beim Versuch, einige URLs zu öffnen, erhalte ich den Wert 403, obwohl ich die URLs direkt in meinem Browser öffnen kann. Der HTTP-Anforderungsheader enthält also etwas, das dem Image-Server nicht gefällt ... irgendwelche Ideen?
Hier sind einige der Ausgaben:
Retrieving:http://upload.wikimedia.org/wikipedia/commons/thumb/4/43/Timba%2B1.jpg/220px-Timba%2B1.jpg
error: cannot retrieve image
Retrieving:http://upload.wikimedia.org/wikipedia/commons/thumb/2/26/YellowLabradorLooking_new.jpg/260px-YellowLabradorLooking_new.jpg
error: cannot retrieve image
Retrieving:http://1.bp.blogspot.com/-7SsJ1n3RdoA/Tf07NOgD5nI/AAAAAAAAABo/tl8qLLIU01Y/s1600/english-shepherd-dog-0003.jpg
read 11123 bytes
Retrieving:http://completedogfood.net/wp-content/uploads/2010/07/complete-dog-food.bmp
read 419630 bytes