Чтобы ответить на ваш конкретный вопрос о том, как вы создаете ZIP-архив (другие обсуждали здесь разбор URL-адресов), я протестировал ваш код. Вы действительно замечательно близки к тому, чтобы уже иметь готовый продукт.
Вот как я могу дополнить то, что вам нужно для создания архива Zip (в этом примере я записываю архив на диск, чтобы убедиться, что он записан правильно).
from zipfile import ZipFile, ZipInfo, ZIP_DEFLATED
import zlib
from cStringIO import StringIO
from urllib2 import urlopen
from urlparse import urlparse
from os import path
images = ['http://sstatic.net/so/img/logo.png',
'http://sstatic.net/so/Img/footer-cc-wiki-peak-internet.png']
buf = StringIO()
# By default, zip archives are not compressed... adding ZIP_DEFLATED
# to achieve that. If you don't want that, or don't have zlib on or
# system, delete the compression kwarg
zip_file = ZipFile(buf, mode='w', compression=ZIP_DEFLATED)
for image in images:
internet_image = urlopen(image)
fname = path.basename(urlparse(image).path)
zip_file.writestr(fname, internet_image.read())
zip_file.close()
output = open('images.zip', 'wb')
output.write(buf.getvalue())
output.close()
buf.close()