解决使用selenium+PhantomJs抓取数据导致内存溢出问题)

浪尽此生 提交于 2019-12-15 04:39:16

解决使用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 关键字的进程。
测试效果,内存得到有效的释放,当然了,也许会有更好的办法,但目前我只能想到这个方案,
如果你有更好的方案,欢迎留言。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!