web-dev-qa-db-ja.com

python URLから画像を保存

pythonを使用してurllib2リクエストまたはurllib.urlretrieveによってurlから画像を保存するときに問題が発生しました。画像のurlは有効です。エクスプローラー。ただし、pythonを使用して画像をダウンロードすると、ファイルを開くことができません。MacOSプレビューを使用して画像を表示します。ありがとうございます!

更新:

コードは次のとおりです

def downloadImage(self):
    request = urllib2.Request(self.url)
    pic = urllib2.urlopen(request)
    print "downloading: " + self.url
    print self.fileName
    filePath = localSaveRoot + self.catalog  + self.fileName + Picture.postfix
    # urllib.urlretrieve(self.url, filePath)
    with open(filePath, 'wb') as localFile:
        localFile.write(pic.read())

ダウンロードする画像のURLは http://site.meishij.net/r/58/25/3568808/a3568808_142682562777944.jpg です

このURLは有効であり、ブラウザを介して保存できますが、pythonコードは開くことができないファイルをダウンロードします。 「認識しません。」Pythonとブラウザ経由で手動でダウンロードした画像でダウンロードした画像を比較します。前者の画像のサイズは数バイト小さくなっています。ファイルは未完成ですが、なぜpython完全にダウンロードできないのかわかりません。

23
Shaoxiang Su

Windowsで動作するサンプルコード:

import requests

with open('pic1.jpg', 'wb') as handle:
        response = requests.get(pic_url, stream=True)

        if not response.ok:
            print response

        for block in response.iter_content(1024):
            if not block:
                break

            handle.write(block)
35
DeepSpace
import requests

img_data = requests.get(image_url).content
with open('image_name.jpg', 'wb') as handler:
    handler.write(img_data)
42
Vlad Bezden

URLからファイルをダウンロードし、その名前で保存するPythonコードスニペット

import requests

url = 'http://google.com/favicon.ico'
filename = url.split('/')[-1]
r = requests.get(url, allow_redirects=True)
open(filename, 'wb').write(r.content)
6
Basil Jose
import random
import urllib.request

def download_image(url):
    name = random.randrange(1,100)
    fullname = str(name)+".jpg"
    urllib.request.urlretrieve(url,fullname)     
download_image("http://site.meishij.net/r/58/25/3568808/a3568808_142682562777944.jpg")
2
learner
import urllib.request
import os

img_url = "https://betanews.com/wp-content/uploads/2017/09/firefox-logo.jpg"
img_name = os.path.basename(img_url)
urllib.request.urlretrieve(img_url,img_name)
1
Charoun crz

Linuxの場合。 wgetコマンドを使用できます

import os
url1 = 'YOUR_URL_WHATEVER'
os.system('wget {}'.format(url1))
0
Vicrobot