TotalTech

フリーランスのプログラマーが、技術情報・ガジェット・仕事術について書いてゆきます。資料価値の高い記事を目指しています。コーヒー好きです。

TotalTech

Flickrの画像埋め込みタグから画像URLを抽出するVBスクリプト

Flickrの画像URL抽出スクリプト

皆さんは、Flickrの画像をどうやってはてなブログの記事に埋め込んでいますか。

  • はてなブログの「Flickr貼り付け」機能
  • Flickrの画像埋め込みタグを貼り付け
  • Flickrの画像埋め込みタグから、画像のURLを抽出し、imgタグを作る

など、いろいろな方法がありますね。

今回は、この3番目の方法、Flickrの画像URLを取得する方法をご紹介します。VBスクリプトを1つ作って、簡単に画像URLを抽出できます。

Flickrの画像埋め込みタグを取得

まずは、Flickrの埋め込みタグを取得します。

Flickrの画像表示画面、右下の矢印アイコン「Share Photo」をクリックします。

Flickr画像表示画面

「Embed」をクリックし、サイズを選択した後、タグをクリップボードにコピーします。

Flickr埋め込みタグ

<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

使い方

  1. Flickrの画像表示画面、右下の矢印アイコン「Share Photo」をクリック
  2. Ctrl + Cクリップボードにコピー
  3. GetFlickrImageUrl.vbs をダブルクリックして実行

これで、画像URLがクリップボードに保存されます。

まとめ

以上、Flickrの画像埋め込みタグから画像URLを抽出するVBスクリプトでした。

いつも必要な定形処理は自動化して、手間を短縮したいですね。