imgur へのリンクにファイル拡張子が付いていない場合があります。例: http://imgur.com/rqCqA
. ファイルをダウンロードして既知の名前を付けるか、より大きなコード内で名前を取得したいと考えています。問題は、ファイルの種類がわからないので、どの拡張子を付ければよいかわかりません。
Pythonまたはbashでこれを達成するにはどうすればよいですか?
Imgur JSON APIを使用する必要があります。requestsを使用した Python の例を次に示します。
import posixpath
import urllib.parse
import requests
url = "http://api.imgur.com/2/image/rqCqA.json"
r = requests.get(url)
img_url = r.json["image"]["links"]["original"]
fn = posixpath.basename(urllib.parse.urlsplit(img_url).path)
r = requests.get(img_url)
with open(fn, "wb") as f:
f.write(r.content)
以前にこれを使用して、大量の xkcd ウェブコミックをダウンロードしましたが、これでも機能するようです。
def saveImage(url, fpath):
contents = urllib2.urlopen(url)
f = open(fpath, 'w')
f.write(contents.read())
f.close()
お役に立てれば
次の URL にアクセスしてみました。
そして、それらはすべて機能しました。Imgur には、同じ画像の複数のタイプが保存されているようです。好きなものを選択できます。
BeautifulSoup などを使用してページのソースを解析し、src で写真のハッシュを含む img タグを探すことができます。あなたの例では、写真は
<img alt="" src="http://i.imgur.com/rqCqA.jpg" original-title="">