2015-07-06 2 views
2

Я работаю над проектом, где мне нужно загрузить некоторые изображения с помощью python. Я пытался исправить это, выполняя разные вещи, но он все еще не работает. Вот какой код я нашел, и я попытался использовать, но он, похоже, не работает. Честно говоря, я новичок в программировании, поэтому буду благодарен за помощь.Загрузка изображений с Python

Вот код:

import json 
import os 
import time 
import requests 
import Image 
from StringIO import StringIO 
from requests.exceptions import ConnectionError 

def go(query,pathA): 

    BASE_URL = 'https://ajax.googleapis.com/ajax/services/search/images?'\ 
      'v=1.0&q=' + query + '&start=%d' 

    BASE_PATH = os.path.join(pathA, query) 

    if not os.path.exists(BASE_PATH): 
    os.makedirs(BASE_PATH) 

    start = 0 
    while start < 60: 
    r = requests.get(BASE_URL % start) 
    for image_info in json.loads(r.text)['responseData']['results']: 
     url = image_info['unescapedUrl'] 
     try: 
     image_r = requests.get(url) 
     except ConnectionError, e: 
     print 'could not download %s' % urla 
     continue 

     # Remove file-system path characters from name. 
     title = image_info['titleNoFormatting'].replace('/', '').replace('\\', '') 

     fileII = open(os.path.join(BASE_PATH, '%s.jpg') % title, 'w') 
     try: 
     Image.open(StringIO(image_r.content)).save(fileII, 'JPEG') 
     except IOError, e: 
     # Throw away some gifs...blegh. 
     print 'could not save %s' % url 
     continue 
     finally: 
     fileII.close() 

    print start 
    start += 4 # 4 images per page. 


    time.sleep(1.5) 

# Example use 
go('landscape', 'myDirectory') 

Я получаю ошибку, когда я запускаю код выше:

IOError: [Errno 22] invalid mode ('w') or filename: u'myDirectory\landscape\Na 
ture - Photo gallery | MIRIADNA.COM.jpg' 

Заранее спасибо

+1

Постарайся жестко прописывать 'title' к чему-то легко. Например, 'title = 'test''. – Tautvydas

ответ

1

Этот бит кода определяет, где вы будете сохранить ваше изображение

# Remove file-system path characters from name. 
     title = image_info['titleNoFormatting'].replace('/', '').replace('\\', '') 

Чтение сообщения об ошибке Я вижу, что файл не существует (или каталог), потому что w является допустимым для открытия файла.

Попробуйте жестко прописывать название для простого и локального пути, такие как

title = 'test' 
+0

спасибо за помощь, я изменил ее, чтобы проверить и сделал итерацию, чтобы предотвратить переписывание изображений. – MrX

Смежные вопросы