ExcelVBA

「DeleteUrlCacheEntry」と「ClearMyTracksByProcess」キャッシュクリアの違い

VBAでIEのキャッシュクリアで検索すると、下記の二つの文言が出てきます。
キャッシュをクリアするのはどちらが正解でしょうか?

■キャッシュクリアで検索時引っかかる文言
DeleteUrlCacheEntry
ClearMyTracksByProcess

キャッシュクリアどちらも正解です

VBAで削除するキャッシュクリアはどちらも正解です。
指定のURLのみクリア(DeleteUrlCacheEntry)するのか、
さまざまな情報をクリア(ClearMyTracksByProcess)するのか、
削除する内容が分かれます。

DeleteUrlCacheEntryの場合

Win32APIの関数の一つです。
指定URLのキャッシュをクリアする方法です。
IEから画像やファイルをダウンロードする際、指定URLのキャッシュをクリアするのみです。

詳しくは下記の記事でInternet Explorerからのファイルダウンロードについて説明しています。
VBAでIE操作「ファイルをPCにダウンロードする」【エクセルマクロ】

ClearMyTracksByProcessの場合

rundll32.exe(DLLの中にある関数を動かすときに使う実行ファイル)を使用して、
Internet Explorer全体のキャッシュやクッキー情報を削除する場合に使用します。

パスワードから履歴等全ての情報を削除する事が可能です。
※こちらはインターネットオプションのオートコンプリートからの設定削除の画面と連携します。

クッキー削除

詳しくは下記の記事で、Internet Explorerのキャッシュ削除について説明しています。
VBAでIE操作「キャッシュをクリアする」【エクセルマクロ】

まとめ

画像やファイルのダウンロードはDeleteUrlCacheEntry
それ以外(IE自動制御にスピードではなく安定動作を求める場合)は
ClearMyTracksByProcessといった形でよいです。

但し、キャッシュを削除するということはサーバーサイドの負荷を増やす事に繋がります。
節度を持ったコードの組み方をする必要があります。
Webスクレイピング(Webクローリング)は優れた技術ですが、Webサイトは相手方が存在します。
相手方に負担にならないよう、注意する必要があります。

現にスクレイピングを禁止しているサイトもあるので、そのあたりも十分に注意しましょう。

その他

その他

Internet Explorerを使用して、Webスクレイピングは敷居が高い風に捉えられますが、
上記のように、パーツ化して組み合わせ処理するだけです。

Web上のデータを触りたい要望は会社様でも個人様でも多いと思います。
VBA IE操作を覚えて効率化しませんか?
作成が大変であれば弊社で代行開発も可能です。お気軽にお問い合わせください。

 

コメント

タイトルとURLをコピーしました