皆さんは、Flickrの画像をどうやってはてなブログの記事に埋め込んでいますか。
など、いろいろな方法がありますね。
今回は、この3番目の方法、Flickrの画像URLを取得する方法をご紹介します。VBスクリプトを1つ作って、簡単に画像URLを抽出できます。
Flickrの画像埋め込みタグを取得
まずは、Flickrの埋め込みタグを取得します。
Flickrの画像表示画面、右下の矢印アイコン「Share Photo」をクリックします。
「Embed」をクリックし、サイズを選択した後、タグをクリップボードにコピーします。
<a data-flickr-embed="true" href="https://www.flickr.com/photos/157980626@N05/36661130892/in/dateposted-public/" title="アイキャッチ"><img src="https://farm5.staticflickr.com/4339/36661130892_f72c0b20ab_o.jpg" width="600" height="420" alt="アイキャッチ"></a><script async src="//embedr.flickr.com/assets/client-code.js" charset=“utf-8”></script>
これをそのままサイトやブログに貼り付けると、マウスオーバー時に色々表示されます。
それで、このタグから画像URL部分
https://farm5.staticflickr.com/4339/36661130892_f72c0b20ab_o.jpg
を取り出します。
画像URL抽出スクリプト
クリップボードからFlickrの埋め込みタグを取得し、画像URL部分を取り出してクリップボードに設定するVBスクリプトを作ります。
以下のコードを、拡張子.vbs の 適当な名前で保存して下さい。ここでは、「GetFlickrImageUrl.vbs」とします。
Function GetClipboardText()
Dim objHTML
Set objHTML = CreateObject("htmlfile")
GetClipboardText = _
Trim(objHTML.ParentWindow.ClipboardData.GetData("text"))
End Function
Sub PutInClipboardText(ByVal str)
Dim cmd
cmd = "cmd /c ""echo " & str & "| clip"""
CreateObject("WScript.Shell").Run cmd, 0
End Sub
Dim s
s = GetClipboardText()
Dim n1
n1 = Instr(s, "<img src=""")
Dim n2
n2 = Instr(n1 + 10, s, "width=")
If (0 < n1) And (0 < n2) And (0 < n2 - n1 - 12) Then
Dim url
url = Mid(s, n1 + 10, n2 - n1 - 12)
PutInClipboardText(url)
End If
使い方
これで、画像URLがクリップボードに保存されます。
まとめ
以上、Flickrの画像埋め込みタグから画像URLを抽出するVBスクリプトでした。
いつも必要な定形処理は自動化して、手間を短縮したいですね。