python - 使用 Selenium 和 Chrome 开发工具的 Chrome 内存泄漏
问题描述
我在 Python 中使用 Selenium 在 Chrome 中执行一些网络抓取。刮板加载页面,在搜索框中键入搜索,解决基本验证码,刮取数据并重复。
问题
chrome.exe
进程内存使用不断攀升,而 Python 和进程的chromedriver.exe
内存使用稳定。
Chrome 泄漏的内存与加载的页面数成正比,因此在大约 600 个页面被抓取后,我的 Chrome 窗口将耗尽内存。“Google Chrome 在尝试显示此网页时内存不足。”
我的解决方法
解决方法 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
解决方案
推荐阅读
- powershell - Export-Csv 添加不需要的标题双引号
- spring-boot - 由于测试配置,Springboot 构建无法正常工作
- view - SQL:?从 3NF 表创建一个 VIEW 看起来像一个单行重复组
- php - php 检查为 DateTime 类提供的格式字符串的有效性
- makefile - 是否可以在 Makefile 的同一目标中具有多个先决条件模式?
- ruby - 如何在 Ruby 中生成范围黄瓜报告?
- android - 如何在 onActivityResult 回调中从 PDF 选择器意图库获得的 pdfUri 获取文件路径?
- contiki - 如何更改 Contiki 中的 LED 切换速度?
- spring-boot - 使用 POSTMAN 应用程序时,Rest End 点不显示任何 json 数据
- amazon-web-services - 将 Lua REST 微服务迁移到 AWS Lambda