node 调用chrome后如何杀死chrome??
发布于 6 年前 作者 quanpf2481 3470 次浏览 来自 问答

我现在是利用puppeteer来爬取网页上的数据,需要用到chrome,每次我爬取数据结束后,chrome都占用不少的cpu和内存,如下图所示: image.png 我的代码如下: 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 我的意思是在程序结束之后,自动的把进程杀掉,怎么样来处理??

回到顶部