前提・実現したいこと
以下のコードで画像をダウンロードすると、PILとかcv2とかで読み込めないファイルがありました。
(urlの2、4、5コメが読み込めない)
原因?を調べてみると、content-typeが「image/vnd.ms-photo」になっていて、対応してない。と考察しました。
私の目的は、jpg,pngでダウンロードしたいです。
よろしくお願いいたします。
JPEG-XR
image/vnd.ms-photo
該当のソースコード
Python
1url = ['https://jp.louisvuitton.com/images/is/image/lv/1/PP_VP_L/louis-vuitton-エンシェントトラベルスタンプtシャツ-プレタポルテ(洋服)--FLTS93HY7231_PM2_Front%20view.png', 'https://jp.louisvuitton.com/images/is/image/lv/1/PP_VP_L/louis-vuitton-エンシェントトラベルスタンプtシャツ-プレタポルテ(洋服)--FLTS93HY7231_PM1_Worn%20view.jpg', 'https://jp.louisvuitton.com/images/is/image/lv/1/PP_VP_L/louis-vuitton-エンシェントトラベルスタンプtシャツ-プレタポルテ(洋服)--FLTS93HY7231_PM1_Closeup%20view.jpg', 'https://jp.louisvuitton.com/images/is/image/lv/1/PP_VP_L/louis-vuitton-エンシェントトラベルスタンプtシャツ-プレタポルテ(洋服)--FLTS93HY7231_PM1_Side%20view.jpg', 'https://jp.louisvuitton.com/images/is/image/lv/1/PP_VP_L/louis-vuitton-エンシェントトラベルスタンプtシャツ-プレタポルテ(洋服)--FLTS93HY7231_PM1_Detail%20view.jpg'] 2dest_path = "_test_" 3download_img( url, dest_path ) 4 5def download_img( url, dest_path ): 6 extesiton = ".png" 7 if "jpg" in url: 8 extesiton = ".jpg" 9 url = urllib.parse.quote( url, safe=':/%20' ) 10 #headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134', 'Referer': 'https://jp.louisvuitton.com/' } 11 req = urllib.request.Request( url ) 12 req.add_header( "User-Agent", 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134' ) 13 req.add_header( "Referer", "https://jp.louisvuitton.com/" ) 14 #req.add_header( "Content-Type", "image/png" )#これをするとDLできなくなる(動かなくなる 15 16 response = urllib.request.urlopen( req, timeout=10 ) 17 print( 'Content-Type:', response.info()['Content-Type'] ) 18 19 response = response.read() 20 with open( "louis_img\" + dest_path + extesiton, mode = "wb" ) as f: 21 f.write( response )
試したこと
headerでcontent-typeを指定したりしましたが、動かなくなりました。
変換ソフトなどで試したところ、読み込めないのがほとんど。
jxrはほぼ対応してなさそう。。。
補足情報(FW/ツールのバージョンなど)
python 3.8.*
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。