RSeleniumで次のコードを使用してブラウザーを開いています。ブラウザを閉じた後、またはremDr $ close()を実行してハンドラを閉じた後も、ポートはまだ使用中です。同じポートが利用可能になるように、ターミナルに移動してプロセスを手動で強制終了する必要があります。 RSeleniumがスクレイピングの完了後にポートを解放する自動化された方法はありますか?
だからここに私のコードがあります:
library(RSelenium)
rD <- rsDriver(verbose = FALSE,port=4444L)
remDr <- rD$client
remDr$close()
ありがとう
プロセスは、サーバー(Seleniumサーバー)とクライアント(ユーザーが開始するブラウザー)の2つの部分で構成されています。 remoteDriverクラスのclose
メソッドは、クライアント(ブラウザ)を閉じます。終了したら、サーバーも停止する必要があります。
終了時にサーバーを停止するには:
library(RSelenium)
rD <- rsDriver(verbose = FALSE,port=4444L)
remDr <- rD$client
remDr$close()
次に、明示的にサーバーを停止します。
rD$server$stop()
または、rD
オブジェクトが削除された場合、ガベージコレクション時にサーバーが停止します。
library(RSelenium)
rD <- rsDriver(verbose = FALSE,port=4444L)
remDr <- rD$client
remDr$close()
rm(rD)
gc()
私のために働いたのは、ストップを全然呼ぶのではなく、クローズを呼ぶだけです。
rD <- rsDriver(port = 4444L)
remDr <- rD[["client"]]
remDr$close()
rm(rD)
gc()
編集:ネバーマインド-これは先週数回は機能しましたが、その後は機能しませんでした。