블랙 이미지를 Flickr API로 수집해 보았습니다.

이 보도는 아래의 udemy 강좌의 일부분을 참고했다.
개시하다
Flickr는 사진 공유를 목적으로 하는 커뮤니티 사이트다.
검색하고 싶은 키워드를 사이트에 입력하면 사진이 많이 나온다.
이 사진들을 한 장씩 다운받을 수도 있지만 원하는 데이터가 많으면 번거롭다.
따라서 Flickr에서 제공하는 Flickr API를 사용하여 프로그램에서 자동으로 가져오고 저장하려고 시도합니다.
Flickr API를 사용하여 Flickr에서 코키1🐶라는 제목의 그림이 올라왔다.2
※ 물론, 콜라🐶다른 이미지를 수집할 수도 있습니다.
API 키 가져오기
먼저 다음 웹 사이트를 방문하여 API Key를 확인하십시오.
※ API Key 정보를 철저히 관리하세요.
이루어지다
이번에는 언어가 Pytohon이고 Google Colaboratory가 사용됩니다.
먼저 flickrapi라는 프로그램 라이브러리를 설치합니다.
!pip install flickrapi
그런 다음 라이브러리 가져오기 및 다양한 설정을 수행합니다.
from flickrapi import FlickrAPI
import urllib
from pprint import pprint
import os, time, sys

# APIキーの情報(厳重に管理)
key = 'xxxxxxxxxx'
secret = 'xxxxxxxxxx'
# アクセスする時間間隔
wait_time = 1
그럼 Flickr API를 방문하십시오.
다음은 검색 키워드key_word, 저장 대상 디렉터리savedir로 표준 입력에서 지정할 수 있습니다.
데이터를 하나 얻어 보세요per_page = 1.
# 保存フォルダの指定
key_word = input('検索キーワードを入力してください:   ')
savedir = './' + input('保存先のディレクトリを入力してください:   ./') # カレントディレクトリ配下。必要に応じて変更

flickr = FlickrAPI(key, secret, format='parsed-json')
result = flickr.photos.search(
    text = key_word, # 検索キーワード
    # per_page = 100, # 取得するデータ数
    per_page = 1, # 取得するデータ数(テスト)
    media = 'photos', # 検索するデータの種類(画像)
    sort = 'relevance', # データのソート順(関連度順)
    safe_search = 1, # 有害コンテンツは表示しない
    extras = 'url_q, licence' # 取得したいデータ
)

photos = result['photos']
pprint(photos)
위에서 검색한 키워드コーギー, 저장된 위치의 디렉터리corgi를 입력합니다.
아래의 출력을 얻을 수 있을 거예요.
検索キーワードを入力してください   コーギー
保存先のディレクトリを入力してください   ./corgi
{'page': 1,
 'pages': 5686,
 'perpage': 1,
 'photo': [{'farm': 5,
            'height_q': 150,
            'id': 'xxxx',
            'isfamily': 0,
            'isfriend': 0,
            'ispublic': 1,
            'owner': 'xxxx',
            'secret': 'xxxx',
            'server': 'xxxx',
            'title': 'コーギー',
            'url_q': 'https://live.staticflickr.com/4056/4392282878_bc08184d6e_q.jpg',
            'width_q': 150}],
 'total': 5686}
url_q에 기재된 링크를 열어 보세요.

코키산기슭🐶
잘 돌아가는 것 같으니 per_page = 100로 100개의 데이터를 만들어 보자.
key_word = input('検索キーワードを入力してください:   ')
savedir = './' + input('保存先のディレクトリを入力してください:   ./')

flickr = FlickrAPI(key, secret, format='parsed-json')
result = flickr.photos.search(
    text = key_word, # 検索キーワード
    per_page = 100, # 取得するデータ数
    # per_page = 1, # 取得するデータ数(テスト)
    media = 'photos', # 検索するデータの種類(画像)
    sort = 'relevance', # データのソート順(関連度順)
    safe_search = 1, # 有害コンテンツは表示しない
    extras = 'url_q, licence' # 取得したいデータ
)

photos = result['photos']
# pprint(photos)
그림% 1개의 캡션을 편집했습니다.여기서 사용하는 것은 urlopen입니다.2
# 存在しない場合、ディレクトリを作成
if not os.path.exists(savedir):
    os.makedirs(savedir)

for i, photo in enumerate(photos['photo']):
    url_q = photo['url_q']
    filepath = savedir + '/' + photo['id'] + '.jpg'
    if os.path.exists(filepath): # 重複(すでにダウンロード済み)していればスキップ
        continue
    data = urllib.request.urlopen(url_q).read()
    with open(filepath, mode="wb") as f:
        f.write(data)

    time.sleep(wait_time)
Colab에서 로컬로 저장할 때는 다음과 같이 zip에 요약해야 합니다.
!zip -r /content/corgi.zip /content/corgi
얻은 그림을 보시오.

응, 온몸이 다크서클이야.🐶
Flickr API를 Flickr에서 기본으로 안전하게 사용🐶를 참고하십시오.
윌셔코키  
파이톤의 파일 다운로드는 urlretrieve가 아니라 urlopen을 사용해야 하는 이유입니다  

좋은 웹페이지 즐겨찾기