使用 Selenium 和 Chrome Dev Tools 的 Chrome 内存泄漏

Osc*_*anL 8 python selenium google-chrome selenium-chromedriver

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

问题

chrome.exe进程的内存使用不断攀升,而Python和chromedriver.exe工艺具有稳定的内存使用情况。

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

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

我的解决方法

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

解决方法 2:改用 Firefox 和 gecko webdriver。这具有恒定的内存使用,而不会出现内存泄漏。

版本详情

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

Python版本:3.8.3

硒版本:3.141.0

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

Chrome 驱动程序:83.0.4103.39