Я нахожу похожие темы, связанные с той же проблемой, но у меня нет такого решения.
Я использую python 3.7 в Windows 7.
Я использую API Flickr для запроса изображений с ключевым словом.Как только у меня есть URL-адреса, я использую PIL для загрузки файлов.Я запускаю следующий файл как администратор:
import flickrapi
import urllib
import urllib.request
from PIL import Image
from datetime import datetime
key='XXX'
mdp='XX'
#Flickr api access key
flickr=flickrapi.FlickrAPI(key,mdp, cache=True)
#We are going to use two parameters : min_upload_date and max_upload_date to get more images. It has timestamp type
def query_imgs(keyword,min_upload_date,max_upload_date):
imgs = flickr.photos.search(text=keyword,
tag_mode='all',
tags=keyword,
extras='url_c',
per_page=500,
sort='relevance',
min_upload_date=min_upload_date,
max_upload_date=max_upload_date,
privacy_filter=1,
relevance=1)
return imgs[0]
def get_urls(imgs):
urls = []
for img in imgs:
url = img.get('url_c')
if (url != None):
urls.append(url)
urls=list(set(urls))
nb_imgs=len(urls)
return (urls,nb_imgs)
def get_imgs(urls,keyword,count):
for i in range(len(urls)):
filename=keyword+'.'+str(count+i)+'.jpg'
urllib.request.urlretrieve(urls[i], filename)
image = Image.open(filename,'r')
image = image.resize((256, 256), Image.ANTIALIAS)
image.save(filename)
def compute_timestamp(year):
"""Giving the year, return two timestamp correspond to the first day of January and February."""
dt1=datetime(year,1,1)
ts1=datetime.timestamp(dt1)
dt2=datetime(year,2,1)
ts2=datetime.timestamp(dt2)
return ts1,ts2
years=[2013,2014,2015,2016,2017,2018]
def main(keyword):
count=0
for year in years :
y,z=compute_timestamp(year)
for i in range(11):
imgs=query_imgs(keyword,y+i*2764800,z+i*2678400)
#2764800 correspond to 32 days, 2678400 to 31 days
#Ex : first period : 01/01 to 02/01, then 02/02 to 03/01 (approximatively)
(urls,x)=get_urls(imgs)
get_imgs(urls,keyword,count)
count=count+x
print(count,"Next Month")
print("Next year")
main('Violence')
Файл python находится в моем H: \ EmotionDetection.Я бегу от имени администратора.
Иногда у меня нет ошибок.Но часто я получаю следующую ошибку:
введите описание изображения здесь
Это странно, потому что это работает для более чем 1500 изображений.Файл находится в папке, но когда я пытаюсь изменить его размер, он не работает.
Есть ли кто-нибудь, кто знает, как изменить мой код, чтобы он мог работать?
Заранее спасибо