【Python】Flickrの検索結果をダウンロードする
機能
Flickrの検索結果をダウンロードするPythonプログラムです。
任意のキーワードでFlickr検索を行い、検索結果の先頭20件の画像をダウンロードします。
サンプル動画
プログラム
#! python3 # 機能 # Flickrの検索結果をダウンロードする # 使い方 # 1.Pythonを実行する # 実行コマンド # python flickr_downloader.py キーワード # python flickr_downloader.py 朝食 # python flickr_downloader.py 朝食 和食 import os import re import sys import bs4 import requests # Flickrの検索結果をダウンロードする関数 def download_flickr(keywords, max_images, folder): os.makedirs(folder, exist_ok=True) # キーワードでFlickr検索 url = "http://www.flickr.com/search/?text=" + " ".join(keywords) print(url) res = requests.get(url) res.raise_for_status() # 画像のタグ取得 soup = bs4.BeautifulSoup(res.text, "lxml") links = soup.select(".photo-list-photo-view") regex = re.compile(r"url\((.+?)\)") for i in range(min(max_images, len(links))): # 画像ダウンロード img_url = "https:" + regex.search(links[i].get("style")).group(1) print(img_url) img_res = requests.get(img_url) img_res.raise_for_status() # 出力フォルダに画像を保存 file_name = os.path.basename(img_url) with open(os.path.join(folder, file_name), "wb") as img_file: for chunk in img_res.iter_content(100000): img_file.write(chunk) if len(sys.argv) < 2: sys.exit("使い方:python flickr_downloader.py キーワード") download_flickr(sys.argv[1:], 20, "images")
使い方
- Pythonを実行する
実行コマンド
python flickr_downloader.py キーワード python flickr_downloader.py 朝食 python flickr_downloader.py 朝食 和食
requestsとbs4をインストールしていない場合は以下のコマンドでインストールして下さい。
pip install requests pip install beautifulsoup4