「Selenium WebDriverder」でスクレイピングプログラムを実行していますと、
ブラウザのプロセスが大量に残ってしましメモリが枯渇してしましました。
今回はメモリが枯渇しないように処理週後にプロセスをきちんと終了させる方法を紹介します。
目次
プロセスの終了方法
プロセスの終了方法は簡単で「close()」、「quit()」メソッド
を利用すれば大丈夫です。
from selenium import webdriver
# ドライバーを宣言
driver = webdriver.Chrome()
~~~各種処理を記載~~~
# ドライバーを終了させる
driver.close()
driver.quit()
今回はGoogle Chromeドライバーを使用しています。
driver.close()とdriver.quit()の違い
では「driver.close()」と「driver.quit()」の挙動の違いについて説明します。
driver.close():アクティブになっているタブを終了
「driver.close()」をアクティブになっているタブのみ終了させます。
スクレイピングするページによっては新規にタブが起動している場合もあるため、
「close()」だけだとプロセスが残り続ける可能性があります。
driver.quit():すべてのタブを閉じてブラウザを終了
「driver.quit()」をすべてのタブを閉じてブラウザを終了させます。
そのためスクレイピングした後やエラーとなった場合には
「quit()」でプロセスを完全に終了させるようにしましょう。