scoped_dir フォルダは削除して大丈夫!
Selenium Basicを使ってchrom driverでスクレイピングをしていると、「scoped_dir フォルダ」という一時ファイルがTempフォルダに行きます。
「scoped_dir フォルダ」は一時ファイルなので、削除してしまって大丈夫です。
スクレイピングは定期的に行う場合がほとんどだと思うので、「scoped_dir フォルダ」をそのままにしておくとPCのストレージがパンパンになってしまって、最終的にまともにPCが動かなくなります。
ですから、スクレイピングが終わったらTempフォルダの中の「scoped_dir フォルダ」を削除する必要があります。
めんどくさいですね!
Tempフォルダの中を自動的に削除する方法
Tempフォルダの中を削除するにはバッチファイル(bat)を使います。
作り方は簡単、メモ帳に以下のコードを張り付けて、保存の時に拡張子を「.bat」にするだけです。
今回は、バッチファイルのファイル名を「sakujo.bat」とします。
rd %temp% /s /q
md %temp%
このファイルをVBAのスクレイピング処理後に自動的に行うにはどうするか?
VBAからバッチファイルを起動すれば大丈夫です。
VBAからバッチファイルを起動する方法
VBAからバッチファイルを起動する方法は2通りあります。
同期 ・・・バッチファイルの実行結果をVBAで待つ
非同期・・・バッチファイルの実行結果を待たずにVBAでの処理が続行
例えば、ものすごく多くのサイトをスクレイピングする場合、「scoped_dir フォルダ」もすごい速さでたまっていきますので、スクレイピング処理の途中でTempファイルを空にした方が良いと思われます。
そんなに多くのサイトをスクレイピングするわけじゃないなら、非同期でいいと思います。
以下、サンプルコードです。
同期
Sub doukisakujo()
Dim dProcessId As Double
Dim sPath
sPath = "C:\web\test\sakujo.bat"
dProcessId = Shell(sPath)
End Sub
非同期
Sub hidoukisakujo()
Dim obj As WshShell
Dim sPath
sPath = "C:\web\sakujo\test.bat"
Set obj = New WshShell
Call obj.Run(sPath, WaitOnReturn:=True)
End Sub