首页 > 解决方案 > 使用 Selenium 和 Chrome 开发工具的 Chrome 内存泄漏

问题描述

我在 Python 中使用 Selenium 在 Chrome 中执行一些网络抓取。刮板加载页面,在搜索框中键入搜索,解决基本验证码,刮取数据并重复。

问题

chrome.exe进程内存使用不断攀升,而 Python 和进程的chromedriver.exe内存使用稳定。

Chrome 泄漏的内存与加载的页面数成正比,因此在大约 600 个页面被抓取后,我的 Chrome 窗口将耗尽内存。“Google Chrome 在尝试显示此网页时内存不足。”

性能监视器在 10 分钟内跟踪进程内存使用情况

我的解决方法

解决方法 1:设置计数器以在运行前加载 N 个页面driver.quit(),然后driver = webdriver.Chrome()重新启动浏览器。但是内存很快又被填满了。

解决方法 2:改用带有 gecko webdriver 的 Firefox。这具有恒定的内存使用率而没有内存泄漏。

版本详情

操作系统:Windows 10 教育版 1909 18363.836

Python版本:3.8.3

硒版本:3.141.0

Chrome 版本:83.0.4103.61(官方版本)(64 位)

铬驱动程序:83.0.4103.39

标签: pythonseleniumgoogle-chromeselenium-chromedriver

解决方案


推荐阅读