2016-09-10 4 views
0

私はpython 3とurllibを使ってNGA.govサイトから画像をダウンロードしようとしています。明確な延長なしでサイトから画像をダウンロードするには?

サイトでは画像が標準の.jpg形式で表示されないため、エラーが発生します。

import urllib.request 
from bs4 import BeautifulSoup 


try: 
    with urllib.request.urlopen("http://images.nga.gov/?service=asset&action=show_preview&asset=33643") as url: 
     s = url.read() 

    soup = BeautifulSoup(s, 'html.parser') 


    img = soup.find("img") 
    urllib.request.urlretrieve(img,"C:\art.jpg") 

except Exception as e: 
    print (e) 

エラー: 一部の文字をデコードすることができませんでしたし、置換文字に置き換えられました。 予想される文字列またはバイト様オブジェクト

誰かがこのエラーを受けている理由と、自分のコンピュータにイメージを取得する方法を教えてください。

答えて

1

BeautifulSoupは、html/xml解析のためのライブラリです。 このURLで既に画像を受け取っているので、何を解析しようとしていますか? これは正常に動作します:urllib.request.urlretrieve("http://images.nga.gov/?service=asset&action=show_preview&asset=33643" ,"C:\art.jpg")

0

BeautifulSoupを使用する必要はありません!ちょうど:

with urllib.request.urlopen("http://images.nga.gov/?service=asset&action=show_preview&asset=33643") as url: 
    s = url.read() 
with open("art.jpg", 'wb') as fp: 
    fp.write(url.read()) 
関連する問題