node 调用chrome后如何杀死chrome??
我现在是利用puppeteer来爬取网页上的数据,需要用到chrome,每次我爬取数据结束后,chrome都占用不少的cpu和内存,如下图所示: 我的代码如下: const puppeteer = require(‘puppeteer’); (async () => { const browser = await puppeteer.launch({ args: [’–no-sandbox’], dumpio: false });
const page = await browser.newPage();
await page.goto('https://book.douban.com/chart');
try {
let issue = await page.$eval('div.main > div.wrap > ul.lot-award > li.currentAward > div.period > span ',el => el.innerHTML);
let num = await page.$eval('div.main > div.wrap > ul.lot-award > li.currentAward > #Num.lot-nums ',el => el.innerHTML);
let num1 = num.replace(/ /g, '');
let num2 = num1.replace(/[\@\#\$\%\^\&\*\(\)\{\}\:\"\L\<\>\?\[\]]/g,'');
let num3 = num2.replace(/spanclass/g,'').replace(/span/g,'').replace(/no/g,'').replace(/=/g,'');
let num4 = num3.substring(0,num3.length - 1);
let num5 = num4.split('/');
console.log(num3);
console.log(num4);
console.log(num5);
console.log(issue);
} catch (err) {
console.log('pid: ',process.pid,' 转发出错:',' : \r\n ',err.stack)
} finally {
browser.close(); // 关闭退出。可注释掉此行代码,便于观察最后的结果
}
})();
请问下,我应该怎么做呢??各位大神有没有什么好的方法或者思路??感谢!!!
3 回复
可以先试试找一下chrome的pid,然后调用process.kill来杀进程。
ps -ef | grep pybbs.jar | grep -v grep | cut -c 9-15 | xargs kill -s 9
把上面的 pybbs.jar 换成你调用chrome的命令执行就可以了
来自实用的 CNodeJS-Swift
@ugrg 我的意思是在程序结束之后,自动的把进程杀掉,怎么样来处理??