LVURLExtraction ver1.4

最終更新日:2021/3/11

WebPage内に書き込まれたURLを抽出し一括ダウンロード


オブジェクト自体はベクター殿のストレージをお借りしています。

https://www.vector.co.jp/soft/winnt/hardware/se515149.html


このアプリケーションの基本はWebPage内に書き込まれたURLを抽出し一括ダウンロードする単純ツールです。
現バージョンでは埋込リンクの抽出や、ソースコードを手動で操作してURLを抽出するような手順も踏めるようになっています。

このようなツールはJavaとかで作成すべきなのかと思いますが、敢えてDotNetコンポーネントの使用法を勉強も兼ねNI-LabVIEWで作成しています。
そのためファイルサイズの大きなランタイムエンジンを必要とするというビハインドを抱えています。

2ちゃんねるの書込を一覧し、リンク情報を抽出して、特定フォルダに一括ダウンロードすることを意図しています。
リンク先をクリックするとポップアップページを介することになりこれを面倒とする方の使用を想定しています。
※ダウンロード後にフォルダ内をExplorer等で一覧表示出来ればよしという考えです。
※抽出URLは拡張子で篩い分けできるようにしています。

URL抽出以外にも関連機能を追加しています。

V1.1では以下の修正・機能追加を施しました。

V1.2では以下の修正・機能追加を施しました。

V1.3では以下の修正・機能追加を施しました。

V1.3.1では以下のバグ修正・機能追加を施しました。

V1.4では以下のバグ修正・機能追加を施しました。



ソフトウェア必要条件:

LVURLExtractionのインストール

本ソフトウエアにはインストーラを用意しています。LabVIEW2016ランタイムエンジンを含めてしまうと200MB超になり、Vectorさんでの扱いは申し訳ないので、実態のみのインストーラです。

ランタイムエンジンは日本NIのサイトからダウンロードしてください。

https://www.ni.com/download/labview-run-time-engine-2016/6066/en/

一応以下のサイトにLabVIEW2016ランタイムエンジンを含めたインストーラを置いておきます。
200MBあります。

  • インストーラ(ランタイムエンジン込み) 1.4 約215MB(ZIP圧縮)
  • インストーラ(実態のみ) 1.4 約7MB(ZIP圧縮)
  • ソースコード(Project)も置いておきます。意図的にLabVIEW2014に変更しました。
    ※LabVIEW2014にはHomeEditionが有ります。1万円以下で購入できることもあり、ソース提供はこのバージョンで行うべきだと考えました。

  • Project 1.4 約4MB(ZIP圧縮)
  • アンインストールするには、

    LVURLExtraction概観:

    LVURLExtractionは、次の機能を有します。

    説明書へ移動


    注意事項



    動作確認状況

    動作確認した環境は以下の通りです。

    1. Windows7SP1(build7601)x64
    2. Windows10Home(build14393)x64
    3. Windows10Pro(build14393)x64


    ダウンロードした画像ファイルをAcrobatで結合してPDF化して管理することが多いのですが、バッチ処理する方法を検討中です。
    自分のPC環境下にはAdobe Acrobat Standard DC(2015)がインストールされているのですが、なかなか自動化できません。
    現状は作成したフォルダを右クリックして『ファイルをAcrobatで結合』を実行して作成されたPDFに対して、プロバティ設定を施し保存しています。そうすることで次回開くと右綴じの見開き頁やら画面に1頁割付が出来てそれはそれで便利です。

    LVURLExtractionにボタンを追加して、ページ内画像ダウンロード完了後に続けてPDF化のバッチ処理が実現出来ないか検討しています。

    '**********************************************
    ' Acrobatを使ってPDFファイルを結合するVBScript
    ' @kinuasa
    '**********************************************
    Option Explicit
     
    Dim		args
    Dim		fso
    Dim		pdoc
    Dim		n, ts, fp
    Dim		cnt, i
    Const	PDSaveFull = 1
    Const	OutputFileName = "merged_"					'結合後のファイル名
     
    Set args = WScript.Arguments
    If args.Count < 1 Then
    	MsgBox "当スクリプトにPDFファイルをドラッグ&ドロップして処理を実行してください。", vbExclamation + vbSystemModal
    	WScript.Quit
    End If
     
    cnt = 0
    Set fso = CreateObject("Scripting.FileSystemObject")
    For i = 0 To args.Count - 1
    	Select Case LCase(fso.GetExtensionName(args(i)))
    		Case "pdf":		cnt = cnt + 1
    		Case "jpg":		cnt = cnt + 1
    		Case "jpeg":	cnt = cnt + 1
    		Case "png":		cnt = cnt + 1
    	End Select
    Next
    If cnt < 2 Then
      MsgBox "2個以上のPDF,画像ファイルを選択してください。", vbExclamation + vbSystemModal
      WScript.Quit
    End If
     
    '出力先設定
    n = Now()
    ts = Year(n) & Right("0" & Month(n), 2) & Right("0" & Day(n), 2) & Right("0" & Hour(n), 2) & Right("0" & Minute(n), 2) & Right("0" & Second(n), 2)
    fp = fso.BuildPath(fso.GetFile(args(0)).ParentFolder.Path, OutputFileName & ts & ".pdf")
     
    With CreateObject("AcroExch.PDDoc")
    	If .Create = True Then
    		Set pdoc = CreateObject("AcroExch.PDDoc")
    		For i = 0 To args.Count - 1
    			Select Case LCase(fso.GetExtensionName(args(i)))
    				Case "pdf":
    					If pdoc.Open(args(i)) = True Then
    						.InsertPages .GetNumPages() - 1, pdoc, 0, pdoc.GetNumPages() - 1, True
    						pdoc.Close
    					End If
    				Case "jpg":
    					If pdoc.Open(args(i)) = True Then
    						.InsertPages .GetNumPages() - 1, pdoc, 0, pdoc.GetNumPages() - 1, True
    						pdoc.Close
    					End If
    				Case "jpeg":
    					If pdoc.Open(args(i)) = True Then
    						.InsertPages .GetNumPages() - 1, pdoc, 0, pdoc.GetNumPages() - 1, True
    						pdoc.Close
    					End If
    				Case "png":
    					If pdoc.Open(args(i)) = True Then
    						.InsertPages .GetNumPages() - 1, pdoc, 0, pdoc.GetNumPages() - 1, True
    						pdoc.Close
    					End If
    			End Select
    		Next
    		Set pdoc = Nothing
    		.Save PDSaveFull, fp
    		.Close
    	End If
    End With
     
    MsgBox "結合したPDFファイルを【" & fp & "】に保存しました。", vbInformation + vbSystemModal

    上記VBScriptは管理人:きぬあさ氏のブログ『初心者備忘録』で知り得たPDFを制御するVBScriptをレタッチしたモノです。
    使い方ですが、

    1. スクリプトを『MergePDF.vbs』と云うファイル名で保存します。
    2. 結合したいファイルを纏めて『MergePDF.vbs』にドラッグ&ドロップします。
    3. merged_YYYYMMDDHHMMSS.pdfと云う名前で保存されます。

    ちなみにVBScriptファイルをLabVIEWで実行する場合はSystemExecを使用して以下のように記述します。WSH下で実行するという事です。

    ただ、この場合VBScriptに引数を与えることがうまく出来ないと思います。

    そこで引数が必要な場合はActiveXのScriptControlを使ってコードを書くことになります。上記の例の場合、

    PDFの画像結合の別案です。

    ImageMagickというツールを使って

    convert pg*.jpg pages.pdf

    という記述でjpgファイルを pages.pdf に変換できるという情報を得ました。
    ImageMagickと云うツールはLinux以外の環境でも使えます。

    https://www.imagemagick.org/script/download.php

    からダウンロード出来ます。

    製作物に戻る


    免責事項

    本ソフトウエアは、あなたに対して何も保証しません。本ソフトウエアの関係者(他の利用者も含む)は、あなたに対して一切責任を負いません。
    あなたが、本ソフトウエアを利用(コンパイル後の再利用など全てを含む)する場合は、自己責任で行う必要があります。

    本ソフトウエアの著作権はToolsBoxに帰属します。
    本ソフトウエアをご利用の結果生じた損害について、ToolsBoxは一切責任を負いません。
    ToolsBoxはコンテンツとして提供する全ての文章、画像等について、内容の合法性・正確性・安全性等、において最善の注意をし、作成していますが、保証するものではありません。
    ToolsBoxはリンクをしている外部サイトについては、何ら保証しません。
    ToolsBoxは事前の予告無く、本ソフトウエアの開発・提供を中止する可能性があります。

    商標・登録商標

    Microsoft、Windows、WindowsNTは米国Microsoft Corporationの米国およびその他の国における登録商標です。
    Windows Vista、Windows XPは、米国Microsoft Corporation.の商品名称です。
    LabVIEW、National Instruments、NI、ni.comはNational Instrumentsの登録商標です。
    I2Cは、NXP Semiconductors社の登録商標です。
    その他の企業名ならびに製品名は、それぞれの会社の商標もしくは登録商標です。
    すべての商標および登録商標は、それぞれの所有者に帰属します。


    ご使用のブラウザ情報は