当前位置:  开发笔记 > 后端 > 正文

chromedriver.quit()之后的多个chrome进程

如何解决《chromedriver.quit()之后的多个chrome进程》经验,为你挑选了1个好方法。

我正在运行一个Django服务,它启动了一个chromedriver for selenium并且在网站上搜索数据.Django服务由另一个Java服务通过HTTP调用.

这是代码:

views.py

path_to_chromedriver = '/path/to/chromedriver' 
browser = webdriver.Chrome(executable_path = path_to_chromedriver)
try:
    response = get_data(browser)
except Exception as e:
    print str(e)
finally:
    browser.close()
    browser.quit()

scraper.py

get_data(browser)
    try:
        .
        .
        .
        for i in range(1,6):
            try:
                .
                .
                .
             return "success data"
             except NoSuchElementException:
                 browser.back()
         raise Exception("No results found")
    except Exception as e:
         print str(e)
         raise

问题是,在java服务完成所有调用并且整个过程完成之后,RAM中孤立的25到50个chrome进程占用超过1 GB.我在这里做错了吗?



1> Ivan Chaer..:

这是一个老问题.虽然很脏,但对我来说有用的是在退出之前增加睡眠:

time.sleep(5)
browser.quit()

推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有