私はphantomjs --webdriver 8910
でリモートwebdriverをモードでphantomjsを実行し、その後のようなものでSeleniumのPythonバインディングを使用して多くのページを取得しています:selenium webdriverを使用したphantomjsのメモリ使用量を制限しますか?
wd = webdriver.PhantomJS(port=8910)
for url in big_url_list:
wd.get(url)
# do something here, e.g. wd.save_screenshot or print wd.page_source
wd.quit()
wd.quit()
は何もしないように表示されます。 topを使用してプロセスを監視すると、より多くのページが取得されるにつれてphantomjsプロセスのメモリ使用量が増加し続けることがわかります。私がphantomjsプロセスを再起動すると、メモリ使用量が少なくなり、再び安定して上昇します。
close method mentioned in the phantomjs docsは有望ですが、WebDriver protocolで呼び出す方法はありません。
(i)多くの要求をするときにphantomjsのメモリ使用を抑える方法、(ii)メモリが決して手に入らないようにphantomjsプロセスを監視し定期的に再起動する信頼できる方法はありますか?