解決使用selenium+PhantomJs抓取數據導致內存溢出問題)

解決使用selenium+PhantomJs抓取數據導致內存溢出問題


在使用selenium+PhantomJs爬取數據時,發現系統運行緩慢,後臺一查發現很多phantomJs進程未被關閉。
在java代碼中,我們調用driver.close()方法並不能保證phantomJs進程會被kill掉。
我使用了比較笨的辦法,就是寫一個.sh腳本,然後java執行該腳本來殺死這些進程以騰出內存空間的目的。

  try {
            Runtime.getRuntime().exec(“腳本位置”);
        } catch (IOException e) {
            log.error(e.getMessage(), e);
        }

.sh 腳本代碼如下:

#!/bin/bash  
#defined
ps -ef | grep phantomjs | grep -v grep | cut -c 9-15 | xargs kill -s 9

這個腳本會殺死所有包含phantomjs 關鍵字的進程。
測試效果,內存得到有效的釋放,當然了,也許會有更好的辦法,但目前我只能想到這個方案,
如果你有更好的方案,歡迎留言。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章