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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值