重新启动驱动程序后,Firefox进程不会关闭

时间:2019-09-11 10:42:36

标签: python selenium ubuntu firefox geckodriver

我构建了一个Web抓取程序,并将其安装在Ubuntu 18.04的AWS EC2微型实例上。它使用Python 3.7.3,Selenium 3.141.0,Firefox 69和Geckodriver 0.25.0。

它实际上运行良好,但是问题是一段时间后,机器不再响应。它拒绝远程连接请求,并且在EC2管理控制台中,我看到id不再通过所有安全检查。

重新启动实例后,一切都很好,但是一旦我启动了刮板,它就会重新开始运行。

使用htop检查活动进程后,似乎有很多与Firefox相关的进程,几个小时后,它们可能多达数百个(以下示例):

htop result

这使我认为Firefox进程在使用后实际上并没有关闭,并且由于它们一直在打开,因此在某个时刻内存已满并且VM停止响应。

程序在无限循环中进行迭代,每50次迭代,驱动程序将使用下面的代码重新启动,但是由于上述过程似乎保持打开状态,因此性能没有任何改善。

DRIVER.quit()
DRIVER = webdriver.Firefox(options=OPTIONS)
DRIVER.get(START_URL)

有没有办法以编程方式杀死这些进程并优化内存使用?

0 个答案:

没有答案
相关问题