質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
for

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

549閲覧

request.urlretrieveで、URLリストとフィアル名リストの2つのリストから、For文で複数画像を取得する方法

YOSHITAKEH

総合スコア21

for

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2018/10/28 08:12

プログラミング初心者のため、質問に不備不具合がございましたらご指摘くださいませ。

やりたいこと

urllib.request

を使い、複数のURL(画像URL)から画像を取得し、画像URLの一部の文字列をファイル名に指定して保存したい。

現在の状況(できたこと)

1つの画像を取得

以下のコードで、1枚だけ保存することはできました。

import urllib.request
urllib.request.urlretrieve("http://images-jp.amazon.com/images/P/4150503761.09.MZZZZZZZ", "test.jpg")

URLリスト作成の準備

urllist

1 http://images-jp.amazon.com/images/P/4150503761.09.MZZZZZZZ
2 http://images-jp.amazon.com/images/P/4150503787.09.MZZZZZZZ
Name: imageurl, dtype: object

ファイル名リスト作成の準備

imagelist

1 4150503761.jpeg
2 4150503787.jpeg

ここまではできました。

困っていること

for文の書き方で、困ってます。

For文をあれこれ試しているのですが、ずっとループしてしまう(1番目の画像保存をひたすら繰り返してる)ケースなど、どれもうまくいきません。そもそも、このような場合、For文が適切なものなのか含めて、アドバイスいただけますでしょうか。

とりあえずPrint()を使った場合でも、非常に多くの表示になってしまいます。2つのリストとも、600個ほどのリストなのですが、ずっとループしているようです。

python

1for i in zip(urllist,filename): 2 print(urllist,filename)

大変お手数ですが、どなた様か、アドバイスいただけますでしょうか。質問自体も不慣れで、ご迷惑をおかけしますが、何卒よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

このような感じでしょうか?

python

1import os 2import time 3import requests 4 5urls = ['http://images-jp.amazon.com/images/P/4150503761.09.MZZZZZZZ', 6 'http://images-jp.amazon.com/images/P/4150503787.09.MZZZZZZZ'] 7 8filenames = ['4150503761.jpeg', '4150503787.jpeg'] 9 10out_path = 'output' 11os.makedirs(out_path, exist_ok=True) 12 13for url, filename in zip(urls, filenames): 14 print('downlaoding image... ', url) 15 save_path = os.path.join(out_path, filename) 16 17 # 画像をダウンロードして、保存する。 18 img = requests.get(url).content 19 with open(save_path, 'wb') as f: 20 f.write(img) 21 time.sleep(0.5) # 画像取得間隔

投稿2018/10/28 09:38

tiitoi

総合スコア21956

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YOSHITAKEH

2018/10/29 01:15

お忙しい中、ご回答ありがとうございました。 早速実行して、無事に取得できました。 本当にありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問